[{"content":"Acerca de Softinbit Technology \u0026ldquo;Diseñamos sistemas de software que no pueden fallar.\u0026rdquo;\nSoftinbit Technology es una iniciativa de ingeniería y una publicación técnica centrada en construir arquitecturas backend .NET resilientes y de alto rendimiento, sistemas distribuidos en la nube y software de misión crítica.\nRespaldado por más de 12 años de experiencia práctica en ingeniería en dos ámbitos exigentes, la infraestructura financiera en tiempo real y la automatización industrial de misión crítica, nuestro contenido sigue una única filosofía: tolerancia a fallos obsesiva, arquitecturas observables y recuperación resiliente.\n🏦 Sistemas backend y fintech de misión crítica Nuestro enfoque técnico se centra en diseñar, mantener y escalar servicios backend que impulsan sistemas financieros de negociación y transacciones de alta disponibilidad:\nMicroservicios tolerantes a fallos: servicios backend escalables en .NET Core que procesan miles de transacciones concurrentes de alto valor con requisitos de disponibilidad del 99,9 % o más. Latencia ultrabaja y alto rendimiento: implementación de cuadrículas de datos en memoria (IMDG), estrategias de caché eficientes y mensajería distribuida (RabbitMQ, Hangfire) para rutas de datos por debajo del milisegundo. Integraciones resilientes: integraciones REST sin tiempo de inactividad con fuentes de datos de mercados financieros, pasarelas de pago y sistemas regulatorios. Ingeniería potenciada con IA: flujos de trabajo asistidos por IA e ingeniería de prompts para acelerar la entrega, manteniendo pruebas unitarias estrictas y una arquitectura limpia. 🏭 Raíces industriales: 8 años en sistemas de automatización y control Antes de la ingeniería backend empresarial, nuestras bases se forjaron durante 8 años programando, poniendo en marcha y manteniendo sistemas automatizados en 5 países:\nSistemas de ejecución de fabricación (MES) multiplanta y paneles centralizados de producción en tiempo real en centros de fabricación internacionales. Sistemas automáticos de almacenamiento y recuperación (AS/RS) a gran escala, transelevadores y transportadores automatizados que operan en entornos exigentes y de alto rendimiento. Lazos de control críticos para la seguridad, interfaces SCADA y canales de comunicación industrial (OPC, Modbus, TCP/IP). Por qué esto importa para el software backend:\nCuando uno ha resuelto fallos de sistemas en tiempo real en la planta de una fábrica, aborda el diseño de software de otra manera. Diseñamos arquitecturas backend con un respeto intuitivo por las condiciones de carrera, los tiempos de espera, los bloqueos mutuos (deadlocks) y la degradación controlada.\n🛠️ Arsenal técnico principal Backend y frameworks: C#, .NET 8 / 9 / 10, ASP.NET Core, Minimal APIs, Blazor, WCF, Clean Architecture, CQRS, DDD. Datos y caché: MS SQL Server, T-SQL, Entity Framework Core, Dapper, In-Memory Data Grids (IMDG), Redis. Mensajería y procesamiento en segundo plano: RabbitMQ, Hangfire, Event-Driven Architecture, Outbox Pattern. Calidad de ingeniería: xUnit, Testcontainers, OpenTelemetry, registro estructurado (Serilog), CI/CD (GitHub Actions). 📖 Qué publicamos Nota: los artículos del blog y las series se publican solo en inglés.\nZero to Full-Stack .NET: una hoja de ruta paso a paso desde los fundamentos hasta el dominio full-stack. The .NET Implementation Playbook: recetas probadas en producción, listas para copiar y pegar, para los retos backend más comunes. The .NET Field Guide: comparativas en profundidad, chuletas y experiencias reales de producción. The Modern .NET Toolkit: arquitecturas cloud modernas, integración de IA (Microsoft.Extensions.AI) y herramientas actuales. Transparencia y uso de IA Los artículos y tutoriales se redactan con ayuda de IA y se prueban, revisan y editan minuciosamente antes de publicarse.\n📬 Contacto y redes LinkedIn: linkedin.com/in/softinbit X (Twitter): @softinbit GitHub: github.com/softinbit Boletín en Substack: softinbit.substack.com ","permalink":"https://www.softinbit.com/es/about/","summary":"Ingeniería .NET de alto rendimiento, arquitecturas backend tolerantes a fallos y guías probadas en producción.","title":"Acerca de Softinbit"},{"content":"Qué hace Escriba una expresión cron y obtenga una descripción en lenguaje claro, las próximas 10 (o 25, 50) ejecuciones y un desglose de cada campo. Las horas de ejecución las calcula el propio planificador de esta página en hora local, UTC o cualquier zona horaria IANA, para que pueda comprobar la programación de un servidor desde cualquier lugar.\nSintaxis admitida: *, listas (1,15), rangos (1-5), pasos (*/10, 5-50/15, 10/20), nombres de meses y días (JAN, MON-FRI), las macros @hourly, @daily, @weekly, @monthly y @yearly, y las extensiones L, W, LW, 5L y MON#2. Cuando se restringen tanto el día del mes como el día de la semana, un día coincide si coincide cualquiera de los dos, como en el cron clásico. En zonas con horario de verano, las horas de reloj que no existen se omiten y las repetidas se ejecutan una sola vez.\nCron de Unix, Hangfire y Quartz.NET Cron de Unix tiene 5 campos: minuto, hora, día del mes, mes y día de la semana (0 o 7 = domingo). Hangfire (que usa la biblioteca Cronos) y NCrontab aceptan los mismos 5 campos más un campo opcional de segundos al principio (6 campos). Quartz.NET siempre empieza por los segundos, añade un campo de año opcional (6 o 7 campos), numera los días de la semana de 1 a 7 con 1 = domingo y exige ? en el día del mes o en el día de la semana. El formato se detecta automáticamente: 7 campos o un ? activan la numeración de Quartz. Aquí ? se trata como *. También puede elegir el formato usted mismo.\nPrivacidad La descripción procede de la biblioteca de código abierto cronstrue; todo se ejecuta en su navegador y no se sube nada.\n","permalink":"https://www.softinbit.com/es/tools/cron-parser/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eEscriba una expresión cron y obtenga una descripción en lenguaje claro, las próximas 10 (o 25, 50) ejecuciones y un desglose de cada campo. Las horas de ejecución las calcula el propio planificador de esta página en hora local, UTC o cualquier zona horaria IANA, para que pueda comprobar la programación de un servidor desde cualquier lugar.\u003c/p\u003e\n\u003cp\u003eSintaxis admitida: \u003ccode\u003e*\u003c/code\u003e, listas (\u003ccode\u003e1,15\u003c/code\u003e), rangos (\u003ccode\u003e1-5\u003c/code\u003e), pasos (\u003ccode\u003e*/10\u003c/code\u003e, \u003ccode\u003e5-50/15\u003c/code\u003e, \u003ccode\u003e10/20\u003c/code\u003e), nombres de meses y días (\u003ccode\u003eJAN\u003c/code\u003e, \u003ccode\u003eMON-FRI\u003c/code\u003e), las macros \u003ccode\u003e@hourly\u003c/code\u003e, \u003ccode\u003e@daily\u003c/code\u003e, \u003ccode\u003e@weekly\u003c/code\u003e, \u003ccode\u003e@monthly\u003c/code\u003e y \u003ccode\u003e@yearly\u003c/code\u003e, y las extensiones \u003ccode\u003eL\u003c/code\u003e, \u003ccode\u003eW\u003c/code\u003e, \u003ccode\u003eLW\u003c/code\u003e, \u003ccode\u003e5L\u003c/code\u003e y \u003ccode\u003eMON#2\u003c/code\u003e. Cuando se restringen tanto el día del mes como el día de la semana, un día coincide si coincide \u003cstrong\u003ecualquiera\u003c/strong\u003e de los dos, como en el cron clásico. En zonas con horario de verano, las horas de reloj que no existen se omiten y las repetidas se ejecutan una sola vez.\u003c/p\u003e","title":"Analizador de expresiones cron"},{"content":"Qué hace Escriba o pegue texto y las estadísticas se actualizan al instante: caracteres (con y sin espacios), palabras, palabras únicas, líneas, oraciones, párrafos, tamaño en bytes UTF-8 y tiempo estimado de lectura y de habla. El panel Palabras más frecuentes muestra las palabras que más se repiten, con la opción de ignorar las palabras vacías comunes del inglés.\nUn clic reescribe el texto:\nFormato: MAYÚSCULAS, minúsculas, Tipo Título, Tipo oración y los estilos de identificador camelCase, PascalCase, snake_case, kebab-case y CONSTANT_CASE. Los estilos de identificador trabajan línea a línea, así que una lista de nombres se convierte de una vez, y dividen correctamente los identificadores existentes (XMLHttpRequest pasa a ser xml_http_request). Líneas: ordenar A–Z, Z–A o de forma natural (file2 antes que file10), eliminar duplicados, invertir, mezclar, recortar y eliminar líneas vacías. Si selecciona una parte del texto, la transformación se aplica solo a la selección. Deshacer retrocede por cada transformación.\nNotas Los caracteres se cuentan tal como se ven: un emoji o una letra acentuada cuentan como uno, aunque ocupen varias unidades de código en UTF-16. Las palabras y oraciones se detectan con la segmentación de texto integrada en su navegador, que maneja la puntuación, los números y la mayoría de los idiomas. El tiempo de lectura supone 225 palabras por minuto y el tiempo de habla, 150 palabras por minuto. Tipo Título sigue las reglas del inglés: deja en minúsculas palabras cortas como «and», «of» y «the», y no modifica siglas como API. Privacidad Su texto nunca sale del navegador. Se guarda en el almacenamiento local para que una recarga no lo borre; use Borrar para eliminarlo.\n","permalink":"https://www.softinbit.com/es/tools/text-analyzer/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eEscriba o pegue texto y las estadísticas se actualizan al instante: caracteres (con y sin espacios), palabras, palabras únicas, líneas, oraciones, párrafos, tamaño en bytes UTF-8 y tiempo estimado de lectura y de habla. El panel \u003cstrong\u003ePalabras más frecuentes\u003c/strong\u003e muestra las palabras que más se repiten, con la opción de ignorar las palabras vacías comunes del inglés.\u003c/p\u003e\n\u003cp\u003eUn clic reescribe el texto:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFormato\u003c/strong\u003e: MAYÚSCULAS, minúsculas, Tipo Título, Tipo oración y los estilos de identificador camelCase, PascalCase, snake_case, kebab-case y CONSTANT_CASE. Los estilos de identificador trabajan línea a línea, así que una lista de nombres se convierte de una vez, y dividen correctamente los identificadores existentes (\u003ccode\u003eXMLHttpRequest\u003c/code\u003e pasa a ser \u003ccode\u003exml_http_request\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLíneas\u003c/strong\u003e: ordenar A–Z, Z–A o de forma natural (\u003ccode\u003efile2\u003c/code\u003e antes que \u003ccode\u003efile10\u003c/code\u003e), eliminar duplicados, invertir, mezclar, recortar y eliminar líneas vacías.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSi selecciona una parte del texto, la transformación se aplica solo a la selección. \u003cstrong\u003eDeshacer\u003c/strong\u003e retrocede por cada transformación.\u003c/p\u003e","title":"Analizador de texto y conversor de mayúsculas"},{"content":"Qué hace ASP.NET Core lee appsettings.json y las variables de entorno en el mismo árbol de configuración. Las secciones anidadas se convierten en claves como Logging:LogLevel:Default, y los elementos de un array reciben un índice (Cors:AllowedOrigins:0). En los nombres de las variables de entorno, : se escribe como __. Esta herramienta hace esa conversión en ambas direcciones mientras escribe.\nFunciones Formatos de salida: .env, environment: de Docker Compose, lista env: de Kubernetes, JSON de Azure App Service para \u0026ldquo;Advanced edit\u0026rdquo; (name / value / slotSetting), $env: de PowerShell, export de bash, launchSettings.json, comandos dotnet user-secrets set y claves .NET simples. Lee archivos reales: se aceptan comentarios y comas finales en appsettings.json. Las claves duplicadas se indican con su número de línea, ya que .NET se niega a cargarlas. Prefijos: añada un prefijo como MYAPP_ para AddEnvironmentVariables(\u0026quot;MYAPP_\u0026quot;). En la dirección inversa, las variables sin el prefijo se ignoran, igual que hace el proveedor. Detección de secretos: se señalan claves como Password, Secret, ApiKey, Token, SigningKey y todo lo que hay bajo ConnectionStrings. Pueden omitirse o sustituirse por entradas secretKeyRef de Kubernetes, referencias de Key Vault o marcadores ${VAR}. Dirección inversa: pegue variables en cualquiera de los formatos anteriores, incluso mezclados. Obtendrá de nuevo appsettings.json con arrays, mayúsculas y minúsculas unificadas y tipos numéricos/booleanos opcionales. Los prefijos de Azure del estilo SQLCONNSTR_ se asignan a ConnectionStrings. Particularidades de cada plataforma: $ se escapa como $$ para Compose. Se señalan los nombres que bash no puede exportar, y también los puntos en los nombres, que Azure App Service en Linux convierte en _. Cómo usarlo Pegue su appsettings.json y elija un formato; después, copie o descargue el resultado. Intercambiar devuelve la salida como entrada en la otra dirección para que pueda comprobar el viaje de ida y vuelta.\nPrivacidad Todo se ejecuta en su navegador. Su entrada solo se guarda en el almacenamiento local cuando no contiene nada que parezca un secreto.\n","permalink":"https://www.softinbit.com/es/tools/appsettings-env/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eASP.NET Core lee \u003ccode\u003eappsettings.json\u003c/code\u003e y las variables de entorno en el mismo árbol de configuración. Las secciones anidadas se convierten en claves como \u003ccode\u003eLogging:LogLevel:Default\u003c/code\u003e, y los elementos de un array reciben un índice (\u003ccode\u003eCors:AllowedOrigins:0\u003c/code\u003e). En los nombres de las variables de entorno, \u003ccode\u003e:\u003c/code\u003e se escribe como \u003ccode\u003e__\u003c/code\u003e. Esta herramienta hace esa conversión en ambas direcciones mientras escribe.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFormatos de salida\u003c/strong\u003e: \u003ccode\u003e.env\u003c/code\u003e, \u003ccode\u003eenvironment:\u003c/code\u003e de Docker Compose, lista \u003ccode\u003eenv:\u003c/code\u003e de Kubernetes, JSON de Azure App Service para \u0026ldquo;Advanced edit\u0026rdquo; (\u003ccode\u003ename\u003c/code\u003e / \u003ccode\u003evalue\u003c/code\u003e / \u003ccode\u003eslotSetting\u003c/code\u003e), \u003ccode\u003e$env:\u003c/code\u003e de PowerShell, \u003ccode\u003eexport\u003c/code\u003e de bash, \u003ccode\u003elaunchSettings.json\u003c/code\u003e, comandos \u003ccode\u003edotnet user-secrets set\u003c/code\u003e y claves .NET simples.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLee archivos reales\u003c/strong\u003e: se aceptan comentarios y comas finales en \u003ccode\u003eappsettings.json\u003c/code\u003e. Las claves duplicadas se indican con su número de línea, ya que .NET se niega a cargarlas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePrefijos\u003c/strong\u003e: añada un prefijo como \u003ccode\u003eMYAPP_\u003c/code\u003e para \u003ccode\u003eAddEnvironmentVariables(\u0026quot;MYAPP_\u0026quot;)\u003c/code\u003e. En la dirección inversa, las variables sin el prefijo se ignoran, igual que hace el proveedor.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetección de secretos\u003c/strong\u003e: se señalan claves como \u003ccode\u003ePassword\u003c/code\u003e, \u003ccode\u003eSecret\u003c/code\u003e, \u003ccode\u003eApiKey\u003c/code\u003e, \u003ccode\u003eToken\u003c/code\u003e, \u003ccode\u003eSigningKey\u003c/code\u003e y todo lo que hay bajo \u003ccode\u003eConnectionStrings\u003c/code\u003e. Pueden omitirse o sustituirse por entradas \u003ccode\u003esecretKeyRef\u003c/code\u003e de Kubernetes, referencias de Key Vault o marcadores \u003ccode\u003e${VAR}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDirección inversa\u003c/strong\u003e: pegue variables en cualquiera de los formatos anteriores, incluso mezclados. Obtendrá de nuevo \u003ccode\u003eappsettings.json\u003c/code\u003e con arrays, mayúsculas y minúsculas unificadas y tipos numéricos/booleanos opcionales. Los prefijos de Azure del estilo \u003ccode\u003eSQLCONNSTR_\u003c/code\u003e se asignan a \u003ccode\u003eConnectionStrings\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eParticularidades de cada plataforma\u003c/strong\u003e: \u003ccode\u003e$\u003c/code\u003e se escapa como \u003ccode\u003e$$\u003c/code\u003e para Compose. Se señalan los nombres que bash no puede exportar, y también los puntos en los nombres, que Azure App Service en Linux convierte en \u003ccode\u003e_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003ePegue su \u003ccode\u003eappsettings.json\u003c/code\u003e y elija un formato; después, copie o descargue el resultado. \u003cstrong\u003eIntercambiar\u003c/strong\u003e devuelve la salida como entrada en la otra dirección para que pueda comprobar el viaje de ida y vuelta.\u003c/p\u003e","title":"appsettings.json ⇄ variables de entorno"},{"content":"Qué hace Escriba una red y todo se calcula mientras teclea. La entrada puede ser un bloque CIDR (10.0.0.0/16, 2001:db8::/48), una dirección con máscara de red (192.168.1.10 255.255.255.0; también sirve una máscara wildcard como 0.0.0.255) o un rango (10.0.0.5 - 10.0.0.77), que se convierte en la lista mínima de bloques CIDR.\nDetalles: red, broadcast, primer y último host utilizable, número de hosts (incluidas las 5 direcciones que Azure y AWS reservan en cada subred), máscara de red, máscara wildcard, zona DNS inversa y una vista binaria con los bits de red y de host coloreados. Tipo de dirección: privada (RFC 1918), CGNAT (100.64.0.0/10), loopback, link-local, multicast, rangos de documentación, ULA de IPv6, link-local y unicast global, cada uno con su RFC. Comprobación de pertenencia: ¿está 10.20.37.4 dentro de esta red? Se indican las direcciones de red y de broadcast. IPv6 bien hecho: aritmética de 128 bits, compresión :: según RFC 5952, forma expandida, identificadores de zona y direcciones IPv4 mapeadas. Dividir y planificar La pestaña Dividir reparte una red en N subredes iguales, en subredes de un prefijo dado o según el número de hosts (VLSM): escriba web 200, GatewaySubnet /27, etc., y los bloques se asignan de mayor a menor mostrando el espacio sobrante. Los resultados se exportan como CSV.\nSolapamiento y espacio libre revisa una lista de CIDR (redes de Docker, rutas VPN, VNets emparejadas, rangos de Kubernetes) en busca de conflictos, los fusiona en el conjunto mínimo de bloques y enumera los bloques libres que quedan en una red principal.\nPrivacidad Todo se calcula en su navegador. Sus últimas entradas solo se guardan en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/cidr-calculator/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eEscriba una red y todo se calcula mientras teclea. La entrada puede ser un bloque CIDR (\u003ccode\u003e10.0.0.0/16\u003c/code\u003e, \u003ccode\u003e2001:db8::/48\u003c/code\u003e), una dirección con máscara de red (\u003ccode\u003e192.168.1.10 255.255.255.0\u003c/code\u003e; también sirve una máscara wildcard como \u003ccode\u003e0.0.0.255\u003c/code\u003e) o un rango (\u003ccode\u003e10.0.0.5 - 10.0.0.77\u003c/code\u003e), que se convierte en la lista mínima de bloques CIDR.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDetalles\u003c/strong\u003e: red, broadcast, primer y último host utilizable, número de hosts (incluidas las 5 direcciones que Azure y AWS reservan en cada subred), máscara de red, máscara wildcard, zona DNS inversa y una vista binaria con los bits de red y de host coloreados.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTipo de dirección\u003c/strong\u003e: privada (RFC 1918), CGNAT (100.64.0.0/10), loopback, link-local, multicast, rangos de documentación, ULA de IPv6, link-local y unicast global, cada uno con su RFC.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eComprobación de pertenencia\u003c/strong\u003e: ¿está \u003ccode\u003e10.20.37.4\u003c/code\u003e dentro de esta red? Se indican las direcciones de red y de broadcast.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIPv6 bien hecho\u003c/strong\u003e: aritmética de 128 bits, compresión \u003ccode\u003e::\u003c/code\u003e según RFC 5952, forma expandida, identificadores de zona y direcciones IPv4 mapeadas.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"dividir-y-planificar\"\u003eDividir y planificar\u003c/h2\u003e\n\u003cp\u003eLa pestaña \u003cstrong\u003eDividir\u003c/strong\u003e reparte una red en N subredes iguales, en subredes de un prefijo dado o según el número de hosts (VLSM): escriba \u003ccode\u003eweb 200\u003c/code\u003e, \u003ccode\u003eGatewaySubnet /27\u003c/code\u003e, etc., y los bloques se asignan de mayor a menor mostrando el espacio sobrante. Los resultados se exportan como CSV.\u003c/p\u003e","title":"Calculadora CIDR / de subredes"},{"content":"Qué hace Base64 convierte bytes en 64 caracteres imprimibles para que los datos binarios puedan viajar en JSON, cabeceras HTTP, correos electrónicos y archivos de configuración. Esta herramienta convierte en ambas direcciones mientras escribe.\nCompatible con UTF-8: el texto se codifica primero como bytes UTF-8, de modo que ü, İ y los emojis van y vuelven sin pérdidas (un simple btoa() falla con ellos). Salida apta para URL y sin relleno (- y _ en lugar de + y /, sin = final), la variante que usan los JWT y muchas URL. Ajustar a 76 genera líneas al estilo MIME / PEM. Decodificador tolerante: se aceptan saltos de línea, espacios, relleno ausente, el alfabeto apto para URL y un prefijo data: URI. Los errores reales se indican con la línea y la columna exactas. Detecta datos binarios: si los bytes decodificados no son UTF-8 válido, se muestra un volcado hexadecimal en lugar de texto ilegible y el tipo de archivo se detecta por sus bytes mágicos. Archivos: suelte cualquier archivo para obtener su Base64, o use Guardar como archivo para convertir Base64 de nuevo en un archivo con la extensión correcta. Cómo usarlo Elija Codificar o Decodificar. Escriba, pegue o suelte un archivo en el panel izquierdo. El resultado se actualiza al instante. Pulse Copiar (o Ctrl+Enter) o Descargar. Intercambiar usa la salida como nueva entrada e invierte la dirección. Privacidad Todo ocurre en su navegador. Los archivos se leen localmente y no se sube nada. Su última entrada de texto y sus opciones se guardan en el almacenamiento local del navegador; Borrar elimina la entrada.\n","permalink":"https://www.softinbit.com/es/tools/base64/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eBase64 convierte bytes en 64 caracteres imprimibles para que los datos binarios puedan viajar en JSON, cabeceras HTTP, correos electrónicos y archivos de configuración. Esta herramienta convierte en ambas direcciones mientras escribe.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCompatible con UTF-8\u003c/strong\u003e: el texto se codifica primero como bytes UTF-8, de modo que \u003ccode\u003eü\u003c/code\u003e, \u003ccode\u003eİ\u003c/code\u003e y los emojis van y vuelven sin pérdidas (un simple \u003ccode\u003ebtoa()\u003c/code\u003e falla con ellos).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSalida apta para URL y sin relleno\u003c/strong\u003e (\u003ccode\u003e-\u003c/code\u003e y \u003ccode\u003e_\u003c/code\u003e en lugar de \u003ccode\u003e+\u003c/code\u003e y \u003ccode\u003e/\u003c/code\u003e, sin \u003ccode\u003e=\u003c/code\u003e final), la variante que usan los JWT y muchas URL.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAjustar a 76\u003c/strong\u003e genera líneas al estilo MIME / PEM.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDecodificador tolerante\u003c/strong\u003e: se aceptan saltos de línea, espacios, relleno ausente, el alfabeto apto para URL y un prefijo \u003ccode\u003edata:\u003c/code\u003e URI. Los errores reales se indican con la línea y la columna exactas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetecta datos binarios\u003c/strong\u003e: si los bytes decodificados no son UTF-8 válido, se muestra un volcado hexadecimal en lugar de texto ilegible y el tipo de archivo se detecta por sus bytes mágicos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eArchivos\u003c/strong\u003e: suelte cualquier archivo para obtener su Base64, o use \u003cstrong\u003eGuardar como archivo\u003c/strong\u003e para convertir Base64 de nuevo en un archivo con la extensión correcta.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eElija \u003cstrong\u003eCodificar\u003c/strong\u003e o \u003cstrong\u003eDecodificar\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eEscriba, pegue o suelte un archivo en el panel izquierdo. El resultado se actualiza al instante.\u003c/li\u003e\n\u003cli\u003ePulse \u003cstrong\u003eCopiar\u003c/strong\u003e (o \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e) o \u003cstrong\u003eDescargar\u003c/strong\u003e. \u003cstrong\u003eIntercambiar\u003c/strong\u003e usa la salida como nueva entrada e invierte la dirección.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"privacidad\"\u003ePrivacidad\u003c/h2\u003e\n\u003cp\u003eTodo ocurre en su navegador. Los archivos se leen localmente y no se sube nada. Su última entrada de texto y sus opciones se guardan en el almacenamiento local del navegador; \u003cstrong\u003eBorrar\u003c/strong\u003e elimina la entrada.\u003c/p\u003e","title":"Codificar / decodificar Base64"},{"content":"Qué hace En HTML, \u0026amp;, \u0026lt;, \u0026gt;, \u0026quot; y ' tienen un significado especial, así que el texto que se inserta en una página o en un atributo debe escaparse. Esta herramienta escapa y desescapa mientras escribe.\nCodificar\nCaracteres especiales escapa solo los cinco caracteres que importan en HTML. Es lo que necesita para plantillas y la opción predeterminada segura. + No ASCII convierte además cada carácter fuera de ASCII en una referencia, algo útil para correos electrónicos, sistemas heredados o archivos que deben seguir siendo de 7 bits. Elija referencias Con nombre (\u0026amp;eacute;, con número cuando no existe un nombre común), Decimal (\u0026amp;#233;) o Hex (\u0026amp;#xE9;). Los emojis y demás caracteres fuera del plano multilingüe básico se convierten en una sola referencia correcta, no en dos mitades sustitutas rotas. Desactive Escapar comillas para texto que solo va entre etiquetas. Decodificar\nLa decodificación usa el analizador HTML de su propio navegador, así que admite todas las entidades con nombre que define el estándar HTML (más de 2000), además de las referencias decimales y hexadecimales. El marcado nunca se ejecuta. La herramienta le informa de las entidades desconocidas y de las que no tienen punto y coma, con línea y columna, y le avisa cuando la entrada se escapó dos veces (\u0026amp;amp;amp;).\nCómo usarla Elija Codificar o Decodificar, pegue su texto y copie el resultado con Copiar o Ctrl+Enter. Intercambiar usa la salida como nueva entrada.\nPrivacidad Nada sale de su navegador. Su última entrada se guarda en el almacenamiento local; Borrar la elimina.\n","permalink":"https://www.softinbit.com/es/tools/html-entities/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eEn HTML, \u003ccode\u003e\u0026amp;\u003c/code\u003e, \u003ccode\u003e\u0026lt;\u003c/code\u003e, \u003ccode\u003e\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026quot;\u003c/code\u003e y \u003ccode\u003e'\u003c/code\u003e tienen un significado especial, así que el texto que se inserta en una página o en un atributo debe escaparse. Esta herramienta escapa y desescapa mientras escribe.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCodificar\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCaracteres especiales\u003c/strong\u003e escapa solo los cinco caracteres que importan en HTML. Es lo que necesita para plantillas y la opción predeterminada segura.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e+ No ASCII\u003c/strong\u003e convierte además cada carácter fuera de ASCII en una referencia, algo útil para correos electrónicos, sistemas heredados o archivos que deben seguir siendo de 7 bits.\u003c/li\u003e\n\u003cli\u003eElija referencias \u003cstrong\u003eCon nombre\u003c/strong\u003e (\u003ccode\u003e\u0026amp;eacute;\u003c/code\u003e, con número cuando no existe un nombre común), \u003cstrong\u003eDecimal\u003c/strong\u003e (\u003ccode\u003e\u0026amp;#233;\u003c/code\u003e) o \u003cstrong\u003eHex\u003c/strong\u003e (\u003ccode\u003e\u0026amp;#xE9;\u003c/code\u003e). Los emojis y demás caracteres fuera del plano multilingüe básico se convierten en una sola referencia correcta, no en dos mitades sustitutas rotas.\u003c/li\u003e\n\u003cli\u003eDesactive \u003cstrong\u003eEscapar comillas\u003c/strong\u003e para texto que solo va entre etiquetas.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDecodificar\u003c/strong\u003e\u003c/p\u003e","title":"Codificar / decodificar entidades HTML"},{"content":"Qué hace La codificación porcentual sustituye los caracteres no permitidos en una URL por bytes %XX. Qué caracteres se escapan depende de dónde vaya el texto, por eso el codificador ofrece las tres reglas que los desarrolladores usan de verdad:\nComponente (encodeURIComponent): para un único valor de consulta o segmento de ruta. Escapa \u0026amp;, =, /, ? y #. URL completa (encodeURI): mantiene la estructura de la URL y solo escapa los espacios, los caracteres no ASCII y los no seguros. RFC 3986: escapa además ! ' ( ) *, como exigen OAuth 1.0 y la firma de peticiones de AWS. Espacio como + cambia a la codificación de formularios HTML (application/x-www-form-urlencoded) en ambas direcciones. El decodificador nunca se rinde ante una entrada incorrecta. Un % sin escapar o una secuencia de bytes que no es UTF-8 válido se indica con su posición exacta y se conserva tal cual, y se detecta el texto codificado dos veces.\nAnalizador de URL Pegue una URL para ver su protocolo, host, puerto (incluido el predeterminado), ruta, consulta y fragmento, cada uno con un botón de copiar. Los parámetros de consulta se muestran en una tabla con las claves y los valores decodificados, las claves repetidas se marcan y el conjunto completo se puede copiar como JSON. Los parámetros del fragmento (#/route?tab=2), habituales en las aplicaciones de una sola página, tienen su propia tabla.\nCómo usarlo Elija Codificar o Decodificar y escriba: la salida se actualiza sobre la marcha. Intercambiar usa el resultado como nueva entrada; Analizar URL lo envía al analizador.\nPrivacidad Todo se ejecuta en su navegador y no se envía nada a ninguna parte. Su última entrada y su última URL se guardan en el almacenamiento local; Borrar las elimina.\n","permalink":"https://www.softinbit.com/es/tools/url-encode/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eLa codificación porcentual sustituye los caracteres no permitidos en una URL por bytes \u003ccode\u003e%XX\u003c/code\u003e. Qué caracteres se escapan depende de dónde vaya el texto, por eso el codificador ofrece las tres reglas que los desarrolladores usan de verdad:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eComponente\u003c/strong\u003e (\u003ccode\u003eencodeURIComponent\u003c/code\u003e): para un único valor de consulta o segmento de ruta. Escapa \u003ccode\u003e\u0026amp;\u003c/code\u003e, \u003ccode\u003e=\u003c/code\u003e, \u003ccode\u003e/\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e y \u003ccode\u003e#\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eURL completa\u003c/strong\u003e (\u003ccode\u003eencodeURI\u003c/code\u003e): mantiene la estructura de la URL y solo escapa los espacios, los caracteres no ASCII y los no seguros.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRFC 3986\u003c/strong\u003e: escapa además \u003ccode\u003e! ' ( ) *\u003c/code\u003e, como exigen OAuth 1.0 y la firma de peticiones de AWS.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEspacio como +\u003c/strong\u003e cambia a la codificación de formularios HTML (\u003ccode\u003eapplication/x-www-form-urlencoded\u003c/code\u003e) en ambas direcciones.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEl decodificador nunca se rinde ante una entrada incorrecta. Un \u003ccode\u003e%\u003c/code\u003e sin escapar o una secuencia de bytes que no es UTF-8 válido se indica con su posición exacta y se conserva tal cual, y se detecta el texto codificado dos veces.\u003c/p\u003e","title":"Codificar / decodificar URL"},{"content":"Qué hace Una referencia en la que encuentra lo que busca antes de terminar de escribir una consulta. Aparecen todos los códigos del registro de la IANA (de 1xx a 5xx, según la RFC 9110 vigente y sus extensiones), además de códigos no oficiales muy frecuentes como 499 Client Closed Request de nginx y los errores 52x de Cloudflare, claramente marcados como no oficiales.\nPara cada código obtiene:\nSignificado y cuándo usarlo / causas habituales, escritos para quienes crean y depuran API. Almacenable en caché por defecto: si las cachés pueden guardarlo sin un Cache-Control explícito (la lista de la RFC 9110 §15.1). Indicaciones de reintento: se puede reintentar sin riesgo, reintentar tras corregir algo o no reintentar nunca, incluido cómo lo tratan Polly y Microsoft.Extensions.Http.Resilience. ASP.NET Core: la llamada de TypedResults / Results, el método auxiliar de ControllerBase, la constante de StatusCodes y el nombre del enum HttpStatusCode, con trampas como el limitador de velocidad que rechaza con 503 si no se configura, o IIS respondiendo 404.13 a subidas demasiado grandes. Especificación: un enlace a la sección exacta de la RFC. Cómo usarlo Escriba un número (404), un prefijo (42, 5xx) o palabras (timeout, redirect, upload). Filtre por clase o muestre solo los códigos de la IANA, los almacenables en caché o los reintentables. Pulse Enter para abrir la primera coincidencia y use las flechas para moverse por la lista. Cada código tiene su propio enlace, por ejemplo /tools/http-status/#429, que lo abre y lo resalta. Copiar C# (o Ctrl+Enter) copia el fragmento del código seleccionado; la lista filtrada se exporta como CSV o JSON.\nPrivacidad La referencia está integrada en la página. Nada de lo que busca se envía a ningún sitio; solo su última búsqueda y sus filtros se guardan en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/http-status/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eUna referencia en la que encuentra lo que busca antes de terminar de escribir una consulta. Aparecen todos los códigos del registro de la IANA (de 1xx a 5xx, según la RFC 9110 vigente y sus extensiones), además de códigos no oficiales muy frecuentes como \u003ccode\u003e499 Client Closed Request\u003c/code\u003e de nginx y los errores \u003ccode\u003e52x\u003c/code\u003e de Cloudflare, claramente marcados como no oficiales.\u003c/p\u003e\n\u003cp\u003ePara cada código obtiene:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSignificado\u003c/strong\u003e y \u003cstrong\u003ecuándo usarlo / causas habituales\u003c/strong\u003e, escritos para quienes crean y depuran API.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlmacenable en caché por defecto\u003c/strong\u003e: si las cachés pueden guardarlo sin un \u003ccode\u003eCache-Control\u003c/code\u003e explícito (la lista de la RFC 9110 §15.1).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIndicaciones de reintento\u003c/strong\u003e: se puede reintentar sin riesgo, reintentar tras corregir algo o no reintentar nunca, incluido cómo lo tratan Polly y \u003ccode\u003eMicrosoft.Extensions.Http.Resilience\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASP.NET Core\u003c/strong\u003e: la llamada de \u003ccode\u003eTypedResults\u003c/code\u003e / \u003ccode\u003eResults\u003c/code\u003e, el método auxiliar de \u003ccode\u003eControllerBase\u003c/code\u003e, la constante de \u003ccode\u003eStatusCodes\u003c/code\u003e y el nombre del enum \u003ccode\u003eHttpStatusCode\u003c/code\u003e, con trampas como el limitador de velocidad que rechaza con 503 si no se configura, o IIS respondiendo 404.13 a subidas demasiado grandes.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEspecificación\u003c/strong\u003e: un enlace a la sección exacta de la RFC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003eEscriba un número (\u003ccode\u003e404\u003c/code\u003e), un prefijo (\u003ccode\u003e42\u003c/code\u003e, \u003ccode\u003e5xx\u003c/code\u003e) o palabras (\u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eredirect\u003c/code\u003e, \u003ccode\u003eupload\u003c/code\u003e). Filtre por clase o muestre solo los códigos de la IANA, los almacenables en caché o los reintentables. Pulse \u003ckbd\u003eEnter\u003c/kbd\u003e para abrir la primera coincidencia y use las flechas para moverse por la lista. Cada código tiene su propio enlace, por ejemplo \u003ccode\u003e/tools/http-status/#429\u003c/code\u003e, que lo abre y lo resalta. \u003cstrong\u003eCopiar C#\u003c/strong\u003e (o \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e) copia el fragmento del código seleccionado; la lista filtrada se exporta como CSV o JSON.\u003c/p\u003e","title":"Códigos de estado HTTP"},{"content":"Qué hace Pegue dos listas y obtenga cuatro resultados a la vez: los elementos solo en A, solo en B, en ambas (intersección) y la unión. Cada resultado muestra su recuento y puede copiarse o descargarse por separado. Es la forma rápida de responder preguntas como «¿qué ID de usuario faltan en la exportación?» o «¿qué paquetes usan ambos proyectos?».\nDetección del separador: un elemento por línea, o separados por coma, punto y coma, tabulación o espacios. El modo automático elige el separador adecuado para cada lista y le indica cuál ha elegido. Recortar espacios, ignorar mayúsculas e ignorar elementos vacíos, para que los espacios sobrantes o las mayúsculas no generen diferencias falsas. Eliminar duplicados dentro de cada resultado, con el número de duplicados encontrados en cada entrada. Orden natural, para que item2 vaya antes que item10. Formato de salida: uno por línea, separado por comas, una lista SQL IN (...) entrecomillada o un array JSON, listo para pegar en una consulta o en código. Cómo usarlo Pegue la primera lista en Lista A y la segunda en Lista B (o abra un archivo en cada una). Ajuste las opciones; los resultados se actualizan mientras escribe. Use Copiar o Descargar en el resultado que necesite, o Intercambiar para cambiar las listas de lado. Con «Ignorar mayúsculas» activado, cada elemento se muestra tal como se escribió la primera vez.\nPrivacidad Ambas listas se comparan en su navegador y solo se guardan en el almacenamiento local para que sobrevivan a una recarga. No se sube nada.\n","permalink":"https://www.softinbit.com/es/tools/list-compare/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue dos listas y obtenga cuatro resultados a la vez: los elementos \u003cstrong\u003esolo en A\u003c/strong\u003e, \u003cstrong\u003esolo en B\u003c/strong\u003e, \u003cstrong\u003een ambas\u003c/strong\u003e (intersección) y la \u003cstrong\u003eunión\u003c/strong\u003e. Cada resultado muestra su recuento y puede copiarse o descargarse por separado. Es la forma rápida de responder preguntas como «¿qué ID de usuario faltan en la exportación?» o «¿qué paquetes usan ambos proyectos?».\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDetección del separador\u003c/strong\u003e: un elemento por línea, o separados por coma, punto y coma, tabulación o espacios. El modo automático elige el separador adecuado para cada lista y le indica cuál ha elegido.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRecortar espacios\u003c/strong\u003e, \u003cstrong\u003eignorar mayúsculas\u003c/strong\u003e e \u003cstrong\u003eignorar elementos vacíos\u003c/strong\u003e, para que los espacios sobrantes o las mayúsculas no generen diferencias falsas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEliminar duplicados\u003c/strong\u003e dentro de cada resultado, con el número de duplicados encontrados en cada entrada.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOrden natural\u003c/strong\u003e, para que \u003ccode\u003eitem2\u003c/code\u003e vaya antes que \u003ccode\u003eitem10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFormato de salida\u003c/strong\u003e: uno por línea, separado por comas, una lista SQL \u003ccode\u003eIN (...)\u003c/code\u003e entrecomillada o un array JSON, listo para pegar en una consulta o en código.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003ePegue la primera lista en \u003cstrong\u003eLista A\u003c/strong\u003e y la segunda en \u003cstrong\u003eLista B\u003c/strong\u003e (o abra un archivo en cada una).\u003c/li\u003e\n\u003cli\u003eAjuste las opciones; los resultados se actualizan mientras escribe.\u003c/li\u003e\n\u003cli\u003eUse \u003cstrong\u003eCopiar\u003c/strong\u003e o \u003cstrong\u003eDescargar\u003c/strong\u003e en el resultado que necesite, o \u003cstrong\u003eIntercambiar\u003c/strong\u003e para cambiar las listas de lado.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eCon «Ignorar mayúsculas» activado, cada elemento se muestra tal como se escribió la primera vez.\u003c/p\u003e","title":"Comparador de listas"},{"content":"Qué hace diferente a este diff La mayoría de los comparadores en línea muestran un muro rojo y verde y le dejan desplazándose. Este está pensado para revisar cambios reales:\nSalte entre cambios con F7 / Mayús+F7, Alt+↓ / Alt+↑ o j / k. El contador siempre indica dónde está («3 / 12»). Barra de vista general a la derecha con todos los cambios del documento de un vistazo. Haga clic en una marca para ir a ella. Resaltado por palabra o carácter dentro de las líneas modificadas, para que una variable renombrada no parezca una línea reescrita. Fusione bloques: use las flechas entre ambos lados para copiar un cambio a la izquierda o a la derecha, con opción de deshacer. Contraiga las líneas sin cambios para centrarse en lo que cambió y expanda cualquier zona plegada con un clic. Ignore espacios, mayúsculas o líneas vacías cuando el ruido de formato oculta el cambio real. Exporte el resultado como un diff unificado estándar (.patch) que entiende git apply. Cómo funciona La comparación usa un patience diff: las líneas que aparecen exactamente una vez en ambos lados sirven de anclas y los huecos entre ellas se comparan con el algoritmo de Myers. El resultado se lee como una persona describiría el cambio, y archivos grandes, de decenas de miles de líneas, se comparan en milisegundos.\nLos finales de línea se normalizan antes de comparar, así un archivo guardado con CRLF de Windows y el mismo archivo con LF de Unix no muestran todas las líneas como cambiadas. Verá un aviso cuando los finales de línea difieran.\nPrivacidad Ambos textos permanecen en su navegador. No se sube nada; sus últimas entradas se guardan en el almacenamiento local del navegador para que recargar no le haga perder trabajo. Use Borrar para eliminarlas.\n","permalink":"https://www.softinbit.com/es/tools/text-compare/","summary":"\u003ch2 id=\"qué-hace-diferente-a-este-diff\"\u003eQué hace diferente a este diff\u003c/h2\u003e\n\u003cp\u003eLa mayoría de los comparadores en línea muestran un muro rojo y verde y le dejan desplazándose. Este está pensado para revisar cambios reales:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSalte entre cambios\u003c/strong\u003e con \u003ckbd\u003eF7\u003c/kbd\u003e / \u003ckbd\u003eMayús\u003c/kbd\u003e+\u003ckbd\u003eF7\u003c/kbd\u003e, \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e↓\u003c/kbd\u003e / \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003e↑\u003c/kbd\u003e o \u003ckbd\u003ej\u003c/kbd\u003e / \u003ckbd\u003ek\u003c/kbd\u003e. El contador siempre indica dónde está («3 / 12»).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBarra de vista general\u003c/strong\u003e a la derecha con todos los cambios del documento de un vistazo. Haga clic en una marca para ir a ella.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eResaltado por palabra o carácter\u003c/strong\u003e dentro de las líneas modificadas, para que una variable renombrada no parezca una línea reescrita.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFusione bloques\u003c/strong\u003e: use las flechas entre ambos lados para copiar un cambio a la izquierda o a la derecha, con opción de deshacer.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eContraiga las líneas sin cambios\u003c/strong\u003e para centrarse en lo que cambió y expanda cualquier zona plegada con un clic.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIgnore espacios, mayúsculas o líneas vacías\u003c/strong\u003e cuando el ruido de formato oculta el cambio real.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExporte\u003c/strong\u003e el resultado como un diff unificado estándar (\u003ccode\u003e.patch\u003c/code\u003e) que entiende \u003ccode\u003egit apply\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-funciona\"\u003eCómo funciona\u003c/h2\u003e\n\u003cp\u003eLa comparación usa un \u003cem\u003epatience diff\u003c/em\u003e: las líneas que aparecen exactamente una vez en ambos lados sirven de anclas y los huecos entre ellas se comparan con el algoritmo de Myers. El resultado se lee como una persona describiría el cambio, y archivos grandes, de decenas de miles de líneas, se comparan en milisegundos.\u003c/p\u003e","title":"Comparador de textos"},{"content":"Qué hace Gzip aparece por todas partes: respuestas HTTP, archivos de logs, colas de mensajes y blobs Base64 dentro de JSON o bases de datos. Esta herramienta comprime y descomprime con las API integradas del navegador CompressionStream y DecompressionStream.\nTres formatos: gzip (RFC 1952, .gz), deflate con encabezado zlib (RFC 1950, lo que la mayoría de las bibliotecas llama \u0026ldquo;deflate\u0026rdquo;) y deflate-raw (RFC 1951, usado dentro de los archivos ZIP y en algunas API). El modo texto comprime mientras escribe y muestra el resultado en Base64. Para descomprimir, pegue Base64 (H4sI...) o hex (1f8b...); Detección automática reconoce el formato por los bytes del encabezado. El modo archivo comprime cualquier archivo a .gz y guarda el nombre y la fecha originales en el encabezado gzip, igual que el comando gzip, de modo que gunzip -N restaura el nombre. Al soltar un archivo .gz, se descomprime y se reutiliza el nombre guardado. Estadísticas: tamaño original y comprimido, proporción y espacio ahorrado. Errores claros: un formato incorrecto, datos truncados o basura al final se notifican como tales. Cómo usarla Elija Texto o Archivo, seleccione un formato (gzip es la opción habitual) y escriba, pegue o suelte. Copie el Base64 con Ctrl+Enter o descargue los bytes sin procesar.\nLimitaciones La API del navegador no ofrece niveles de compresión, así que los resultados se acercan a gzip -9, pero no siempre son idénticos byte a byte. Los navegadores muy antiguos sin CompressionStream no son compatibles; la página le avisa si el suyo es uno de ellos.\nPrivacidad La compresión se realiza localmente; los archivos nunca salen de su equipo. Solo la entrada de texto se guarda en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/gzip/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eGzip aparece por todas partes: respuestas HTTP, archivos de logs, colas de mensajes y blobs Base64 dentro de JSON o bases de datos. Esta herramienta comprime y descomprime con las API integradas del navegador \u003ccode\u003eCompressionStream\u003c/code\u003e y \u003ccode\u003eDecompressionStream\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTres formatos\u003c/strong\u003e: \u003ccode\u003egzip\u003c/code\u003e (RFC 1952, \u003ccode\u003e.gz\u003c/code\u003e), \u003ccode\u003edeflate\u003c/code\u003e con encabezado zlib (RFC 1950, lo que la mayoría de las bibliotecas llama \u0026ldquo;deflate\u0026rdquo;) y \u003ccode\u003edeflate-raw\u003c/code\u003e (RFC 1951, usado dentro de los archivos ZIP y en algunas API).\u003c/li\u003e\n\u003cli\u003eEl \u003cstrong\u003emodo texto\u003c/strong\u003e comprime mientras escribe y muestra el resultado en Base64. Para descomprimir, pegue Base64 (\u003ccode\u003eH4sI...\u003c/code\u003e) o hex (\u003ccode\u003e1f8b...\u003c/code\u003e); \u003cstrong\u003eDetección automática\u003c/strong\u003e reconoce el formato por los bytes del encabezado.\u003c/li\u003e\n\u003cli\u003eEl \u003cstrong\u003emodo archivo\u003c/strong\u003e comprime cualquier archivo a \u003ccode\u003e.gz\u003c/code\u003e y guarda el nombre y la fecha originales en el encabezado gzip, igual que el comando \u003ccode\u003egzip\u003c/code\u003e, de modo que \u003ccode\u003egunzip -N\u003c/code\u003e restaura el nombre. Al soltar un archivo \u003ccode\u003e.gz\u003c/code\u003e, se descomprime y se reutiliza el nombre guardado.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEstadísticas\u003c/strong\u003e: tamaño original y comprimido, proporción y espacio ahorrado.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErrores claros\u003c/strong\u003e: un formato incorrecto, datos truncados o basura al final se notifican como tales.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarla\"\u003eCómo usarla\u003c/h2\u003e\n\u003cp\u003eElija \u003cstrong\u003eTexto\u003c/strong\u003e o \u003cstrong\u003eArchivo\u003c/strong\u003e, seleccione un formato (gzip es la opción habitual) y escriba, pegue o suelte. Copie el Base64 con \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e o descargue los bytes sin procesar.\u003c/p\u003e","title":"Comprimir / descomprimir Gzip"},{"content":"Qué hace Escriba un número en cualquier campo (decimal, hexadecimal, binario, octal o una base personalizada de 2 a 36) y los demás se actualizan mientras escribe.\nCualquier tamaño: la conversión usa BigInt de JavaScript, así que las claves de 128 bits, los ID de 64 bits y los números de 30 dígitos se convierten con exactitud, sin el redondeo de los conversores de coma flotante. Pegue los valores tal como aparecen en el código: se reconocen los prefijos 0x, 0b y 0o, separadores como 1_000_000, DEAD BEEF o 1,234,567, y un signo menos inicial. El prefijo tiene prioridad sobre el campo, de modo que pegar 0xFF en el campo decimal también funciona. Agrupación de dígitos en la salida: hex y binario en grupos de cuatro, decimal con separadores de miles. Complemento a dos para 8, 16, 32 y 64 bits, o automáticamente el ancho más pequeño en que cabe el valor. Verá la interpretación con y sin signo, el patrón hex y binario rellenado y los bytes en orden big-endian y little-endian. Por ejemplo, -1 con 8 bits es 0xFF, y 0xFFFFFFFF leído como int32 es -1. Cuadrícula de bits: haga clic en cualquier bit para invertirlo y vea cómo cambian todas las representaciones. El bit de signo está marcado. Errores precisos como Dígito no válido \u0026ldquo;9\u0026rdquo; en la posición 4 para la base 8. Cómo usarlo Empiece a escribir en cualquier campo o pulse Ejemplo para recorrer valores de muestra. Use Copiar junto a un campo para copiar esa representación.\nPrivacidad Toda la conversión se realiza en su navegador. No se sube nada; su último valor y sus ajustes se recuerdan en este dispositivo.\n","permalink":"https://www.softinbit.com/es/tools/number-base/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eEscriba un número en cualquier campo (decimal, hexadecimal, binario, octal o una base personalizada de 2 a 36) y los demás se actualizan mientras escribe.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCualquier tamaño\u003c/strong\u003e: la conversión usa \u003ccode\u003eBigInt\u003c/code\u003e de JavaScript, así que las claves de 128 bits, los ID de 64 bits y los números de 30 dígitos se convierten con exactitud, sin el redondeo de los conversores de coma flotante.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePegue los valores tal como aparecen en el código\u003c/strong\u003e: se reconocen los prefijos \u003ccode\u003e0x\u003c/code\u003e, \u003ccode\u003e0b\u003c/code\u003e y \u003ccode\u003e0o\u003c/code\u003e, separadores como \u003ccode\u003e1_000_000\u003c/code\u003e, \u003ccode\u003eDEAD BEEF\u003c/code\u003e o \u003ccode\u003e1,234,567\u003c/code\u003e, y un signo menos inicial. El prefijo tiene prioridad sobre el campo, de modo que pegar \u003ccode\u003e0xFF\u003c/code\u003e en el campo decimal también funciona.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAgrupación de dígitos\u003c/strong\u003e en la salida: hex y binario en grupos de cuatro, decimal con separadores de miles.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eComplemento a dos\u003c/strong\u003e para 8, 16, 32 y 64 bits, o automáticamente el ancho más pequeño en que cabe el valor. Verá la interpretación con y sin signo, el patrón hex y binario rellenado y los bytes en orden big-endian y little-endian. Por ejemplo, \u003ccode\u003e-1\u003c/code\u003e con 8 bits es \u003ccode\u003e0xFF\u003c/code\u003e, y \u003ccode\u003e0xFFFFFFFF\u003c/code\u003e leído como \u003ccode\u003eint32\u003c/code\u003e es \u003ccode\u003e-1\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCuadrícula de bits\u003c/strong\u003e: haga clic en cualquier bit para invertirlo y vea cómo cambian todas las representaciones. El bit de signo está marcado.\u003c/li\u003e\n\u003cli\u003eErrores precisos como \u003cem\u003eDígito no válido \u0026ldquo;9\u0026rdquo; en la posición 4 para la base 8\u003c/em\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003eEmpiece a escribir en cualquier campo o pulse \u003cstrong\u003eEjemplo\u003c/strong\u003e para recorrer valores de muestra. Use \u003cstrong\u003eCopiar\u003c/strong\u003e junto a un campo para copiar esa representación.\u003c/p\u003e","title":"Conversor de bases numéricas"},{"content":"Qué hace Pegue un color en cualquier formato y obtenga todos los demás, cada uno con su botón de copiar: HEX, RGB, HSL, HWB, OKLCH, OKLab, CIE Lab/LCH (D50) y color(display-p3 …). También lee y escribe lo que usa el código .NET: Color.FromArgb(…) (int, ARGB o alfa + color con nombre), Color.FromRgb, Colors.Red, el texto Color [A=…, R=…] de ToString(), 0xAARRGGBB, enteros con signo de ToArgb() y #AARRGGBB de XAML. Use el interruptor hex de 8 dígitos para elegir si #xxxxxxxx sigue el orden de CSS o el de .NET.\nLab, LCH y OKLCH pueden describir colores que sRGB no puede mostrar. Esos colores se señalan y los valores hex/RGB se ajustan a la gama con el método de CSS Color 4 (reducción del croma en OKLCH) en lugar de recortarse. Los cálculos siguen CSS Color 4: curva de transferencia sRGB, punto blanco D65, adaptación de Bradford a D50 para Lab y el OKLab de Björn Ottosson.\nContraste El color que introduce se trata como texto y el segundo color como fondo. Obtiene la relación de contraste WCAG 2.x con aprobado/suspenso para AA y AAA (texto normal y grande) y para componentes de interfaz (3:1). La relación se redondea hacia abajo, de modo que un par mostrado como 4.5:1 aprueba de verdad. El valor Lc de APCA se muestra solo a título informativo, porque no forma parte de WCAG 2.x. Los colores semitransparentes se componen como los dibujaría un navegador.\nCuando un par no aprueba, la herramienta sugiere los colores de texto y de fondo válidos más cercanos cambiando solo la luminosidad OKLCH, de modo que el tono y el croma no cambian. Haga clic en Aplicar para usar uno.\nPaleta La escala de tonos de 50 a 950 se construye en OKLCH, y su color aparece sin cambios en el escalón más cercano. Cópiela como propiedades personalizadas de CSS, como bloque colors de Tailwind v3 o como bloque @theme de Tailwind v4.\nPrivacidad Todo se ejecuta en su navegador. Las entradas solo se guardan en el almacenamiento local de su navegador.\n","permalink":"https://www.softinbit.com/es/tools/color-converter/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un color en cualquier formato y obtenga todos los demás, cada uno con su botón de copiar: HEX, RGB, HSL, HWB, OKLCH, OKLab, CIE Lab/LCH (D50) y \u003ccode\u003ecolor(display-p3 …)\u003c/code\u003e. También lee y escribe lo que usa el código .NET: \u003ccode\u003eColor.FromArgb(…)\u003c/code\u003e (int, ARGB o alfa + color con nombre), \u003ccode\u003eColor.FromRgb\u003c/code\u003e, \u003ccode\u003eColors.Red\u003c/code\u003e, el texto \u003ccode\u003eColor [A=…, R=…]\u003c/code\u003e de \u003ccode\u003eToString()\u003c/code\u003e, \u003ccode\u003e0xAARRGGBB\u003c/code\u003e, enteros con signo de \u003ccode\u003eToArgb()\u003c/code\u003e y \u003ccode\u003e#AARRGGBB\u003c/code\u003e de XAML. Use el interruptor \u003cstrong\u003ehex de 8 dígitos\u003c/strong\u003e para elegir si \u003ccode\u003e#xxxxxxxx\u003c/code\u003e sigue el orden de CSS o el de .NET.\u003c/p\u003e","title":"Conversor de colores y comprobador de contraste"},{"content":"Qué hace Suelte una imagen o un lote completo, elija un formato y cada archivo se convierte al instante. La lista muestra las dimensiones originales y nuevas de cada imagen, el tamaño de archivo original y nuevo, cuánto se ha reducido (o aumentado) y un total del lote.\nFormatos: PNG, JPEG y WebP, además de AVIF cuando su navegador puede codificarlo (el botón solo aparece en ese caso). Control deslizante de calidad para JPEG, WebP y AVIF. Cambiar cualquier ajuste vuelve a convertir el lote automáticamente. Redimensionado a un ancho y/o alto máximo. La relación de aspecto siempre se conserva y las imágenes nunca se amplían. Las reducciones grandes se hacen por pasos para obtener un resultado más nítido. El color de fondo sustituye la transparencia al convertir a JPEG (que no tiene canal alfa), o en cualquier formato con Rellenar transparencia. Descargue los archivos uno a uno o todos a la vez. Cómo usarlo Suelte imágenes en la página, pegue una captura de pantalla o haga clic en la zona para elegir archivos. Elija el formato de salida y ajuste la calidad o el tamaño. Descargue los resultados. Conviene saber La conversión usa los codificadores del propio navegador, por lo que los resultados y los formatos que puede abrir varían ligeramente entre navegadores. Los metadatos, como los datos EXIF de la cámara o la ubicación GPS, no se copian al nuevo archivo. Las fotos se giran primero según su orientación EXIF. Los GIF y WebP animados se convierten como un único fotograma fijo. Un PNG sin pérdida guardado de nuevo como PNG a menudo no es más pequeño; WebP o AVIF normalmente sí. Privacidad Las imágenes se decodifican y codifican localmente en un canvas. Nunca se suben.\n","permalink":"https://www.softinbit.com/es/tools/image-converter/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eSuelte una imagen o un lote completo, elija un formato y cada archivo se convierte al instante. La lista muestra las dimensiones originales y nuevas de cada imagen, el tamaño de archivo original y nuevo, cuánto se ha reducido (o aumentado) y un total del lote.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFormatos\u003c/strong\u003e: PNG, JPEG y WebP, además de AVIF cuando su navegador puede codificarlo (el botón solo aparece en ese caso).\u003c/li\u003e\n\u003cli\u003eControl deslizante de \u003cstrong\u003ecalidad\u003c/strong\u003e para JPEG, WebP y AVIF. Cambiar cualquier ajuste vuelve a convertir el lote automáticamente.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRedimensionado\u003c/strong\u003e a un ancho y/o alto máximo. La relación de aspecto siempre se conserva y las imágenes nunca se amplían. Las reducciones grandes se hacen por pasos para obtener un resultado más nítido.\u003c/li\u003e\n\u003cli\u003eEl \u003cstrong\u003ecolor de fondo\u003c/strong\u003e sustituye la transparencia al convertir a JPEG (que no tiene canal alfa), o en cualquier formato con \u003cstrong\u003eRellenar transparencia\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDescargue\u003c/strong\u003e los archivos uno a uno o todos a la vez.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eSuelte imágenes en la página, pegue una captura de pantalla o haga clic en la zona para elegir archivos.\u003c/li\u003e\n\u003cli\u003eElija el formato de salida y ajuste la calidad o el tamaño.\u003c/li\u003e\n\u003cli\u003eDescargue los resultados.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"conviene-saber\"\u003eConviene saber\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLa conversión usa los codificadores del propio navegador, por lo que los resultados y los formatos que puede abrir varían ligeramente entre navegadores.\u003c/li\u003e\n\u003cli\u003eLos metadatos, como los datos EXIF de la cámara o la ubicación GPS, no se copian al nuevo archivo. Las fotos se giran primero según su orientación EXIF.\u003c/li\u003e\n\u003cli\u003eLos GIF y WebP animados se convierten como un único fotograma fijo.\u003c/li\u003e\n\u003cli\u003eUn PNG sin pérdida guardado de nuevo como PNG a menudo no es más pequeño; WebP o AVIF normalmente sí.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"privacidad\"\u003ePrivacidad\u003c/h2\u003e\n\u003cp\u003eLas imágenes se decodifican y codifican localmente en un canvas. Nunca se suben.\u003c/p\u003e","title":"Conversor de imágenes"},{"content":"Qué hace Convierta una respuesta de API o una exportación JSON en un CSV listo para hojas de cálculo, o un archivo CSV en JSON. La vista previa en tabla muestra exactamente cómo quedan las filas y las columnas.\nJSON → CSV Cada clave se convierte en una columna, aunque solo aparezca en algunas filas. Las columnas mantienen el orden en que aparecen las claves por primera vez. Los objetos anidados se aplanan en rutas con puntos (address.city) o se mantienen como texto JSON si desactiva el aplanado. Los arrays se escriben como cadenas JSON ([\u0026quot;admin\u0026quot;,\u0026quot;billing\u0026quot;]). Funciona con respuestas envueltas: para {\u0026quot;data\u0026quot;: [ ... ]} se usan las filas dentro de data. Entrecomillado correcto para delimitadores, comillas, saltos de línea y espacios iniciales o finales. Coma, punto y coma, tabulador o barra vertical, finales de línea CRLF o LF y un BOM UTF-8 opcional para que Excel muestre bien los caracteres acentuados. CSV → JSON Análisis según RFC 4180: campos entre comillas, comillas dobladas (\u0026quot;\u0026quot;) y saltos de línea dentro de comillas. Detección automática del delimitador, fila de encabezado activada o no (sin encabezado obtiene arrays). Inferencia de tipos (opcional): números, true/false, celdas vacías como null y arrays/objetos JSON en celdas. Valores como 007 siguen siendo cadenas para no perder los ceros iniciales. Las rutas con puntos vuelven a anidarse, de modo que un CSV creado aquí se convierte de nuevo en el JSON original. Las comillas sin cerrar se indican con el número de línea; las filas con un número de campos distinto se muestran como advertencia. Privacidad Todo se ejecuta en su navegador y no se sube nada. Su última entrada de cada dirección se guarda en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/json-to-csv/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eConvierta una respuesta de API o una exportación JSON en un CSV listo para hojas de cálculo, o un archivo CSV en JSON. La vista previa en tabla muestra exactamente cómo quedan las filas y las columnas.\u003c/p\u003e\n\u003ch2 id=\"json--csv\"\u003eJSON → CSV\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCada clave se convierte en una columna\u003c/strong\u003e, aunque solo aparezca en algunas filas. Las columnas mantienen el orden en que aparecen las claves por primera vez.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLos objetos anidados se aplanan\u003c/strong\u003e en rutas con puntos (\u003ccode\u003eaddress.city\u003c/code\u003e) o se mantienen como texto JSON si desactiva el aplanado. Los arrays se escriben como cadenas JSON (\u003ccode\u003e[\u0026quot;admin\u0026quot;,\u0026quot;billing\u0026quot;]\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFunciona con respuestas envueltas\u003c/strong\u003e: para \u003ccode\u003e{\u0026quot;data\u0026quot;: [ ... ]}\u003c/code\u003e se usan las filas dentro de \u003ccode\u003edata\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEntrecomillado correcto\u003c/strong\u003e para delimitadores, comillas, saltos de línea y espacios iniciales o finales.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eComa, punto y coma, tabulador o barra vertical\u003c/strong\u003e, finales de línea CRLF o LF y un \u003cstrong\u003eBOM UTF-8\u003c/strong\u003e opcional para que Excel muestre bien los caracteres acentuados.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"csv--json\"\u003eCSV → JSON\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAnálisis según RFC 4180\u003c/strong\u003e: campos entre comillas, comillas dobladas (\u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e) y saltos de línea dentro de comillas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetección automática del delimitador\u003c/strong\u003e, fila de encabezado activada o no (sin encabezado obtiene arrays).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eInferencia de tipos\u003c/strong\u003e (opcional): números, \u003ccode\u003etrue\u003c/code\u003e/\u003ccode\u003efalse\u003c/code\u003e, celdas vacías como \u003ccode\u003enull\u003c/code\u003e y arrays/objetos JSON en celdas. Valores como \u003ccode\u003e007\u003c/code\u003e siguen siendo cadenas para no perder los ceros iniciales.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLas rutas con puntos vuelven a anidarse\u003c/strong\u003e, de modo que un CSV creado aquí se convierte de nuevo en el JSON original.\u003c/li\u003e\n\u003cli\u003eLas comillas sin cerrar se indican con el número de línea; las filas con un número de campos distinto se muestran como advertencia.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"privacidad\"\u003ePrivacidad\u003c/h2\u003e\n\u003cp\u003eTodo se ejecuta en su navegador y no se sube nada. Su última entrada de cada dirección se guarda en el almacenamiento local.\u003c/p\u003e","title":"Conversor de JSON a CSV"},{"content":"Qué hace Pegue JSON o YAML: la herramienta detecta cuál es y lo convierte al otro formato mientras escribe. También puede fijar la dirección. Intercambiar vuelve a usar el resultado como entrada, algo útil para comprobar que un viaje de ida y vuelta conserva los mismos datos.\nFunciones Errores útiles: la línea y columna del problema, la explicación del analizador («bad indentation of a mapping entry», «duplicated mapping key», «Falta una coma entre propiedades») y un fragmento con un acento circunflejo. Funciones de YAML admitidas: comentarios, anclas y alias (\u0026amp;defaults / *defaults), claves de fusión (\u0026lt;\u0026lt;: *defaults), cadenas de bloque y plegadas, colecciones de flujo y varios documentos separados por --- (devueltos como un array JSON). Las fechas se mantienen tal cual: 2024-11-05 sale como la cadena \u0026quot;2024-11-05\u0026quot;, no como una marca de tiempo convertida. Salida YAML segura: las cadenas que YAML leería de otro modo como booleanos, números o fechas (\u0026quot;yes\u0026quot;, \u0026quot;on\u0026quot;, \u0026quot;0123\u0026quot;, \u0026quot;2024-01-01\u0026quot;) se entrecomillan, y las líneas largas nunca se pliegan. Advertencias cuando un valor no se puede representar exactamente, como enteros mayores que 253 o .inf/.nan (JSON no admite Infinity). Sangría de 2 o 4 espacios y ordenación opcional de claves. Cómo usarlo Pegue o suelte un archivo .json, .yaml o .yml, revise el resultado y cópielo o descárguelo. Ctrl+Enter convierte al instante.\nPrivacidad La conversión utiliza la biblioteca de código abierto js-yaml cargada en la página; sus datos se procesan localmente y nunca se suben. La última entrada se recuerda en el almacenamiento local de su navegador.\n","permalink":"https://www.softinbit.com/es/tools/json-yaml/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue JSON o YAML: la herramienta detecta cuál es y lo convierte al otro formato mientras escribe. También puede fijar la dirección. \u003cstrong\u003eIntercambiar\u003c/strong\u003e vuelve a usar el resultado como entrada, algo útil para comprobar que un viaje de ida y vuelta conserva los mismos datos.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eErrores útiles\u003c/strong\u003e: la línea y columna del problema, la explicación del analizador («bad indentation of a mapping entry», «duplicated mapping key», «Falta una coma entre propiedades») y un fragmento con un acento circunflejo.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFunciones de YAML admitidas\u003c/strong\u003e: comentarios, anclas y alias (\u003ccode\u003e\u0026amp;defaults\u003c/code\u003e / \u003ccode\u003e*defaults\u003c/code\u003e), claves de fusión (\u003ccode\u003e\u0026lt;\u0026lt;: *defaults\u003c/code\u003e), cadenas de bloque y plegadas, colecciones de flujo y varios documentos separados por \u003ccode\u003e---\u003c/code\u003e (devueltos como un array JSON).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLas fechas se mantienen tal cual\u003c/strong\u003e: \u003ccode\u003e2024-11-05\u003c/code\u003e sale como la cadena \u003ccode\u003e\u0026quot;2024-11-05\u0026quot;\u003c/code\u003e, no como una marca de tiempo convertida.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSalida YAML segura\u003c/strong\u003e: las cadenas que YAML leería de otro modo como booleanos, números o fechas (\u003ccode\u003e\u0026quot;yes\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;on\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;0123\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;2024-01-01\u0026quot;\u003c/code\u003e) se entrecomillan, y las líneas largas nunca se pliegan.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdvertencias\u003c/strong\u003e cuando un valor no se puede representar exactamente, como enteros mayores que 2\u003csup\u003e53\u003c/sup\u003e o \u003ccode\u003e.inf\u003c/code\u003e/\u003ccode\u003e.nan\u003c/code\u003e (JSON no admite Infinity).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSangría de 2 o 4 espacios\u003c/strong\u003e y ordenación opcional de claves.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003ePegue o suelte un archivo \u003ccode\u003e.json\u003c/code\u003e, \u003ccode\u003e.yaml\u003c/code\u003e o \u003ccode\u003e.yml\u003c/code\u003e, revise el resultado y cópielo o descárguelo. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e convierte al instante.\u003c/p\u003e","title":"Conversor de JSON a YAML"},{"content":"Qué hace Pegue cualquier marca de tiempo o fecha y véala a la vez en todos los formatos habituales. El tipo de entrada se detecta automáticamente:\nTiempo Unix en segundos, milisegundos, microsegundos o nanosegundos, según el tamaño del número (también funcionan decimales y valores negativos). .NET DateTime.Ticks: intervalos de 100 nanosegundos desde 0001-01-01, como los que devuelven DateTime.UtcNow.Ticks o DateTimeOffset.UtcTicks. Fechas ISO 8601 con o sin desfase, incluidas fracciones de segundo hasta nanosegundos y la forma compacta 20240501T123000Z. Fechas RFC 2822 como las usadas en cabeceras de correo electrónico y HTTP. Si un número es ambiguo, elija el tipo explícitamente en el menú junto a la entrada.\nLa tabla de resultados muestra UTC, su hora local, cualquier zona horaria IANA que seleccione, ISO 8601, RFC 2822, segundos, milisegundos, microsegundos y nanosegundos Unix, ticks de .NET (tanto el valor UTC como el valor de hora local que daría DateTime.Now.Ticks), un tiempo relativo como «hace 3 horas», y el día de la semana, el número de semana ISO y el día del año. Cada fila tiene un botón para copiar.\nInternamente los valores se guardan como enteros exactos, así que una marca de tiempo en nanosegundos o un valor de ticks se convierte sin los errores de redondeo de los conversores de coma flotante.\nElegir una fecha Use el selector de fecha y hora bajo la tabla para convertir en sentido inverso: elija un momento en hora local, UTC o la zona horaria seleccionada y obtenga su marca de tiempo. Las horas que caen en el salto del horario de verano se adelantan, igual que lo hacen JavaScript y la mayoría de las bibliotecas de fechas.\nPrivacidad Todo se ejecuta en su navegador con los datos de zonas horarias integrados de Intl. No se sube nada; su última entrada y la zona horaria elegida se recuerdan en este dispositivo.\n","permalink":"https://www.softinbit.com/es/tools/timestamp/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue cualquier marca de tiempo o fecha y véala a la vez en todos los formatos habituales. El tipo de entrada se detecta automáticamente:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTiempo Unix\u003c/strong\u003e en segundos, milisegundos, microsegundos o nanosegundos, según el tamaño del número (también funcionan decimales y valores negativos).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e.NET \u003ccode\u003eDateTime.Ticks\u003c/code\u003e\u003c/strong\u003e: intervalos de 100 nanosegundos desde 0001-01-01, como los que devuelven \u003ccode\u003eDateTime.UtcNow.Ticks\u003c/code\u003e o \u003ccode\u003eDateTimeOffset.UtcTicks\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFechas \u003cstrong\u003eISO 8601\u003c/strong\u003e con o sin desfase, incluidas fracciones de segundo hasta nanosegundos y la forma compacta \u003ccode\u003e20240501T123000Z\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFechas \u003cstrong\u003eRFC 2822\u003c/strong\u003e como las usadas en cabeceras de correo electrónico y HTTP.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSi un número es ambiguo, elija el tipo explícitamente en el menú junto a la entrada.\u003c/p\u003e","title":"Conversor de marcas de tiempo Unix"},{"content":"Qué hace Pegue un comando curl y obtenga código C# que envía la misma solicitud con HttpClient. Entiende lo que DevTools y Postman generan realmente: «Copy as cURL (bash)» con cadenas $'...', «Copy as cURL (cmd)» con escapes ^, --location / --data-urlencode de Postman, continuaciones de línea con \\, ^ o acento grave, y opciones combinadas como -sSLk.\nFunciones destacadas Dos estilos: un HttpClient simple con un SocketsHttpHandler reutilizable, o una clase typed client registrada con AddHttpClient\u0026lt;T\u0026gt;() para IHttpClientFactory, con BaseAddress, tiempos de espera y configuración del handler en el registro. El tipo de contenido correcto: los cuerpos JSON se convierten en JsonContent.Create(...) con un objeto anónimo (o en un literal de cadena sin procesar si prefiere conservar los bytes exactos), los datos de formulario en FormUrlEncodedContent y -F en MultipartFormDataContent con partes de archivo. Un cuerpo multipart sin procesar copiado de DevTools se vuelve a dividir en partes. Autenticación bien hecha: -u, --oauth2-bearer y los encabezados Authorization usan AuthenticationHeaderValue; --digest / --ntlm usan NetworkCredential. Los encabezados que HttpClient gestiona por sí mismo se omiten con una nota: Host, Content-Length, Connection y Accept-Encoding (sustituido por la descompresión automática). Los encabezados sec-ch-* / sec-fetch-* exclusivos del navegador se pueden quitar. Las notas explican todo lo que requiere su atención: -k, credenciales en el código, JSON enviado sin Content-Type, variables de shell, opciones ignoradas. Cómo usarlo Pegue el comando, elija HttpClient o Typed client y, a continuación, copie o descargue el archivo .cs. La tabla de la solicitud analizada muestra exactamente cómo se interpretó el comando. Haga clic en Ejemplo para recorrer muestras de Chrome, Postman, Windows cmd y subida de archivos.\nPrivacidad Todo se ejecuta en su navegador; no se envía nada a ningún sitio. El último comando se guarda en el almacenamiento local solo si no contiene credenciales (tokens, cookies, contraseñas).\n","permalink":"https://www.softinbit.com/es/tools/curl-to-csharp/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un comando curl y obtenga código C# que envía la misma solicitud con \u003ccode\u003eHttpClient\u003c/code\u003e. Entiende lo que DevTools y Postman generan realmente: «Copy as cURL (bash)» con cadenas \u003ccode\u003e$'...'\u003c/code\u003e, «Copy as cURL (cmd)» con escapes \u003ccode\u003e^\u003c/code\u003e, \u003ccode\u003e--location\u003c/code\u003e / \u003ccode\u003e--data-urlencode\u003c/code\u003e de Postman, continuaciones de línea con \u003ccode\u003e\\\u003c/code\u003e, \u003ccode\u003e^\u003c/code\u003e o acento grave, y opciones combinadas como \u003ccode\u003e-sSLk\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"funciones-destacadas\"\u003eFunciones destacadas\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDos estilos\u003c/strong\u003e: un \u003ccode\u003eHttpClient\u003c/code\u003e simple con un \u003ccode\u003eSocketsHttpHandler\u003c/code\u003e reutilizable, o una clase typed client registrada con \u003ccode\u003eAddHttpClient\u0026lt;T\u0026gt;()\u003c/code\u003e para \u003ccode\u003eIHttpClientFactory\u003c/code\u003e, con \u003ccode\u003eBaseAddress\u003c/code\u003e, tiempos de espera y configuración del handler en el registro.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEl tipo de contenido correcto\u003c/strong\u003e: los cuerpos JSON se convierten en \u003ccode\u003eJsonContent.Create(...)\u003c/code\u003e con un objeto anónimo (o en un literal de cadena sin procesar si prefiere conservar los bytes exactos), los datos de formulario en \u003ccode\u003eFormUrlEncodedContent\u003c/code\u003e y \u003ccode\u003e-F\u003c/code\u003e en \u003ccode\u003eMultipartFormDataContent\u003c/code\u003e con partes de archivo. Un cuerpo multipart sin procesar copiado de DevTools se vuelve a dividir en partes.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAutenticación bien hecha\u003c/strong\u003e: \u003ccode\u003e-u\u003c/code\u003e, \u003ccode\u003e--oauth2-bearer\u003c/code\u003e y los encabezados \u003ccode\u003eAuthorization\u003c/code\u003e usan \u003ccode\u003eAuthenticationHeaderValue\u003c/code\u003e; \u003ccode\u003e--digest\u003c/code\u003e / \u003ccode\u003e--ntlm\u003c/code\u003e usan \u003ccode\u003eNetworkCredential\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLos encabezados que HttpClient gestiona por sí mismo se omiten con una nota\u003c/strong\u003e: \u003ccode\u003eHost\u003c/code\u003e, \u003ccode\u003eContent-Length\u003c/code\u003e, \u003ccode\u003eConnection\u003c/code\u003e y \u003ccode\u003eAccept-Encoding\u003c/code\u003e (sustituido por la descompresión automática). Los encabezados \u003ccode\u003esec-ch-*\u003c/code\u003e / \u003ccode\u003esec-fetch-*\u003c/code\u003e exclusivos del navegador se pueden quitar.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLas notas\u003c/strong\u003e explican todo lo que requiere su atención: \u003ccode\u003e-k\u003c/code\u003e, credenciales en el código, JSON enviado sin Content-Type, variables de shell, opciones ignoradas.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003ePegue el comando, elija HttpClient o Typed client y, a continuación, copie o descargue el archivo \u003ccode\u003e.cs\u003c/code\u003e. La tabla de la solicitud analizada muestra exactamente cómo se interpretó el comando. Haga clic en \u003cstrong\u003eEjemplo\u003c/strong\u003e para recorrer muestras de Chrome, Postman, Windows cmd y subida de archivos.\u003c/p\u003e","title":"curl a C# HttpClient"},{"content":"Qué hace Pegue un certificado PEM o una cadena completa, o suelte un archivo .pem, .crt, .cer, .der o .p7b, y cada certificado se decodifica en una tarjeta legible:\nSujeto y emisor, con cada atributo (CN, O, OU, C\u0026hellip;) por separado. Validez en UTC con una insignia de caducado, caduca pronto o válido y el número de días restantes. Subject Alternative Names (SAN): nombres DNS, direcciones IP (IPv4 e IPv6), correos electrónicos, URI y UPN de Microsoft. Clave pública: algoritmo y tamaño o curva (RSA 2048, EC P-256, Ed25519\u0026hellip;), y el algoritmo de firma, incluidos los parámetros de RSASSA-PSS. Uso de clave, uso extendido de clave, restricciones básicas (si es una CA y la longitud de ruta), ID de clave del sujeto y de la autoridad, URL de CRL y OCSP, políticas del certificado (DV / OV / EV) y marcas de tiempo de Certificate Transparency incrustadas. Las extensiones críticas se señalan. Huellas SHA-256 y SHA-1, calculadas con WebCrypto en su navegador. Comprobación de la cadena: para cada certificado, la herramienta busca su emisor en la lista y verifica la firma, de modo que puede ver si la cadena está completa, en el orden correcto y realmente firmada por el certificado siguiente. El decodificador es un pequeño analizador ASN.1/DER escrito para esta página. No interviene ninguna biblioteca de certificados ni ningún servidor.\nCómo usarlo Pegue el texto del certificado o suelte un archivo. Para comprobar un servidor, exporte su cadena desde el visor de certificados del navegador o ejecute openssl s_client -showcerts -connect host:443 y pegue la salida. Los bloques adicionales, como las claves privadas, se ignoran (y se señalan).\nPrivacidad Los certificados son documentos públicos, pero aun así solo se decodifican en su navegador. El texto pegado se guarda en el almacenamiento local para no perderlo al recargar; Borrar lo elimina.\n","permalink":"https://www.softinbit.com/es/tools/certificate-decoder/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un certificado PEM o una cadena completa, o suelte un archivo \u003ccode\u003e.pem\u003c/code\u003e, \u003ccode\u003e.crt\u003c/code\u003e, \u003ccode\u003e.cer\u003c/code\u003e, \u003ccode\u003e.der\u003c/code\u003e o \u003ccode\u003e.p7b\u003c/code\u003e, y cada certificado se decodifica en una tarjeta legible:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSujeto y emisor\u003c/strong\u003e, con cada atributo (CN, O, OU, C\u0026hellip;) por separado.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eValidez\u003c/strong\u003e en UTC con una insignia de \u003cem\u003ecaducado\u003c/em\u003e, \u003cem\u003ecaduca pronto\u003c/em\u003e o \u003cem\u003eválido\u003c/em\u003e y el número de días restantes.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSubject Alternative Names (SAN)\u003c/strong\u003e: nombres DNS, direcciones IP (IPv4 e IPv6), correos electrónicos, URI y UPN de Microsoft.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eClave pública\u003c/strong\u003e: algoritmo y tamaño o curva (RSA 2048, EC P-256, Ed25519\u0026hellip;), y el \u003cstrong\u003ealgoritmo de firma\u003c/strong\u003e, incluidos los parámetros de RSASSA-PSS.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUso de clave, uso extendido de clave, restricciones básicas\u003c/strong\u003e (si es una CA y la longitud de ruta), \u003cstrong\u003eID de clave del sujeto y de la autoridad\u003c/strong\u003e, URL de CRL y OCSP, políticas del certificado (DV / OV / EV) y marcas de tiempo de Certificate Transparency incrustadas. Las extensiones críticas se señalan.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHuellas SHA-256 y SHA-1\u003c/strong\u003e, calculadas con WebCrypto en su navegador.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eComprobación de la cadena\u003c/strong\u003e: para cada certificado, la herramienta busca su emisor en la lista y verifica la firma, de modo que puede ver si la cadena está completa, en el orden correcto y realmente firmada por el certificado siguiente.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEl decodificador es un pequeño analizador ASN.1/DER escrito para esta página. No interviene ninguna biblioteca de certificados ni ningún servidor.\u003c/p\u003e","title":"Decodificador de certificados X.509"},{"content":"Qué hace Pegue un token y se decodificará mientras escribe:\nToken con colores: el encabezado, el payload y la firma se resaltan, así que un error al copiar y pegar salta a la vista. JSON con formato para el encabezado y el payload, cada uno con opciones de copia y descarga. Tabla de claims que explica cada claim estándar (iss, sub, aud, exp, nbf, iat, jti, además de claims habituales de OpenID Connect y Microsoft) y convierte las marcas de tiempo en fechas UTC con tiempos relativos. Línea de estado: válido, caduca en 12 min, caducó hace 3 días o aún no es válido. Se señalan las fechas en milisegundos en lugar de segundos. Errores claros para tokens mal formados: número incorrecto de partes, JWE cifrados, caracteres base64url no válidos (con su posición) y JSON roto. Verificación de la firma La verificación usa la API WebCrypto de su navegador:\nHS256 / HS384 / HS512 con un secreto de texto o Base64. Se señalan los secretos más cortos que el hash (RFC 7518). RS256-512 y PS256-512 con una clave RSA, ES256 / ES384 / ES512 con una clave EC y EdDSA (Ed25519) si el navegador lo admite. La clave puede ser un PEM PUBLIC KEY, un RSA PUBLIC KEY, un CERTIFICATE X.509, un JWK o un JWK Set completo (la clave se elige por kid). Una clave que no corresponde al algoritmo (por ejemplo, una clave RSA para ES256) se notifica como tal, no como un fallo impreciso. Crear un token La pestaña Crear token firma un payload JSON con HS256, HS384 o HS512. Incluye botones para iat y exp y genera un secreto aleatorio de la longitud adecuada.\nPrivacidad Los tokens se decodifican localmente. Los secretos y las claves nunca se guardan ni se envían a ningún sitio. Solo el token y el borrador del payload se conservan en el almacenamiento local, así que elimine los tokens de producción con Borrar cuando termine.\n","permalink":"https://www.softinbit.com/es/tools/jwt-decoder/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un token y se decodificará mientras escribe:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eToken con colores\u003c/strong\u003e: el encabezado, el payload y la firma se resaltan, así que un error al copiar y pegar salta a la vista.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJSON con formato\u003c/strong\u003e para el encabezado y el payload, cada uno con opciones de copia y descarga.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTabla de claims\u003c/strong\u003e que explica cada claim estándar (\u003ccode\u003eiss\u003c/code\u003e, \u003ccode\u003esub\u003c/code\u003e, \u003ccode\u003eaud\u003c/code\u003e, \u003ccode\u003eexp\u003c/code\u003e, \u003ccode\u003enbf\u003c/code\u003e, \u003ccode\u003eiat\u003c/code\u003e, \u003ccode\u003ejti\u003c/code\u003e, además de claims habituales de OpenID Connect y Microsoft) y convierte las marcas de tiempo en fechas UTC con tiempos relativos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLínea de estado\u003c/strong\u003e: \u003cem\u003eválido, caduca en 12 min\u003c/em\u003e, \u003cem\u003ecaducó hace 3 días\u003c/em\u003e o \u003cem\u003eaún no es válido\u003c/em\u003e. Se señalan las fechas en milisegundos en lugar de segundos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErrores claros\u003c/strong\u003e para tokens mal formados: número incorrecto de partes, JWE cifrados, caracteres base64url no válidos (con su posición) y JSON roto.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"verificación-de-la-firma\"\u003eVerificación de la firma\u003c/h2\u003e\n\u003cp\u003eLa verificación usa la API WebCrypto de su navegador:\u003c/p\u003e","title":"Decodificador y verificador de JWT"},{"content":"Qué hace Pegue código minificado o simplemente con un formato irregular y obténgalo tal como lo formatearía Prettier en su editor. Cambie a Minificar para comprimir JavaScript puro con Terser. La salida se actualiza mientras escribe.\nFunciones JavaScript, TypeScript, JSX y TSX, incluida la sintaxis moderna: encadenamiento opcional, decoradores, genéricos, satisfies, import type y componentes de React. Las opciones de Prettier que los desarrolladores realmente cambian: 2 espacios, 4 espacios o tabuladores, ancho de línea, comillas simples o dobles, punto y coma sí o no y comas finales (todas, ES5 o ninguna). Minificar con Terser: el acortamiento de nombres y la compresión se activan por separado, los comentarios /*! ... */ y @license se conservan y los módulos ES (import / export) se detectan automáticamente. Errores de sintaxis precisos con la línea y la columna, un fragmento de código con un indicador y el botón Ir al error. Si pega TypeScript con JS seleccionado, la herramienta se lo indica. Tamaño antes y después, número de líneas y tiempo. Al abrir un archivo .ts, .tsx o .jsx, el lenguaje se selecciona automáticamente. Cómo usarlo Pegue el código, abra un archivo o suéltelo sobre la entrada. Ejemplo carga una muestra para el lenguaje seleccionado. Elija el lenguaje y después Formatear o Minificar. Copie o descargue el resultado. Ctrl+Enter lo ejecuta al instante. Minificar solo funciona con JavaScript puro. Terser no tiene analizador de TypeScript ni de JSX, y no existe una versión para navegador que minifique TypeScript directamente, así que TS, JSX y TSX deben compilarse primero a JavaScript (por ejemplo, con tsc, esbuild o Babel). Aquí siempre puede embellecerlos. El analizador de TypeScript solo se descarga cuando elige TS o TSX, y Terser solo la primera vez que minifica.\nPrivacidad Su código se formatea y minifica en su navegador; solo se descargan de un CDN los archivos de Prettier y Terser con versión fija. No se sube nada. La última entrada se guarda en el almacenamiento local para que una recarga no la pierda.\n","permalink":"https://www.softinbit.com/es/tools/js-beautifier/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue código minificado o simplemente con un formato irregular y obténgalo tal como lo formatearía Prettier en su editor. Cambie a \u003cstrong\u003eMinificar\u003c/strong\u003e para comprimir JavaScript puro con Terser. La salida se actualiza mientras escribe.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJavaScript, TypeScript, JSX y TSX\u003c/strong\u003e, incluida la sintaxis moderna: encadenamiento opcional, decoradores, genéricos, \u003ccode\u003esatisfies\u003c/code\u003e, \u003ccode\u003eimport type\u003c/code\u003e y componentes de React.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLas opciones de Prettier que los desarrolladores realmente cambian\u003c/strong\u003e: 2 espacios, 4 espacios o tabuladores, ancho de línea, comillas simples o dobles, punto y coma sí o no y comas finales (todas, ES5 o ninguna).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinificar con Terser\u003c/strong\u003e: el acortamiento de nombres y la compresión se activan por separado, los comentarios \u003ccode\u003e/*! ... */\u003c/code\u003e y \u003ccode\u003e@license\u003c/code\u003e se conservan y los módulos ES (\u003ccode\u003eimport\u003c/code\u003e / \u003ccode\u003eexport\u003c/code\u003e) se detectan automáticamente.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErrores de sintaxis precisos\u003c/strong\u003e con la línea y la columna, un fragmento de código con un indicador y el botón \u003cstrong\u003eIr al error\u003c/strong\u003e. Si pega TypeScript con JS seleccionado, la herramienta se lo indica.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTamaño antes y después\u003c/strong\u003e, número de líneas y tiempo. Al abrir un archivo \u003ccode\u003e.ts\u003c/code\u003e, \u003ccode\u003e.tsx\u003c/code\u003e o \u003ccode\u003e.jsx\u003c/code\u003e, el lenguaje se selecciona automáticamente.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003ePegue el código, abra un archivo o suéltelo sobre la entrada. \u003cstrong\u003eEjemplo\u003c/strong\u003e carga una muestra para el lenguaje seleccionado.\u003c/li\u003e\n\u003cli\u003eElija el lenguaje y después \u003cstrong\u003eFormatear\u003c/strong\u003e o \u003cstrong\u003eMinificar\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eCopie o descargue el resultado. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e lo ejecuta al instante.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eMinificar solo funciona con JavaScript puro.\u003c/strong\u003e Terser no tiene analizador de TypeScript ni de JSX, y no existe una versión para navegador que minifique TypeScript directamente, así que TS, JSX y TSX deben compilarse primero a JavaScript (por ejemplo, con \u003ccode\u003etsc\u003c/code\u003e, esbuild o Babel). Aquí siempre puede embellecerlos. El analizador de TypeScript solo se descarga cuando elige TS o TSX, y Terser solo la primera vez que minifica.\u003c/p\u003e","title":"Embellecedor de JavaScript y TypeScript"},{"content":"Qué hace Convierta una hoja de estilos minificada o un archivo SCSS desordenado en código legible con una declaración por línea, o reduzca una hoja de estilos para producción. La salida se actualiza mientras escribe.\nFunciones CSS, SCSS y LESS: se entienden el anidamiento, las variables, los mixins, los mapas, @use, las guardas y la interpolación #{} / @{}. Formato con Prettier con 2 espacios, 4 espacios o tabuladores, ancho de línea y comillas simples o dobles. Minificar elimina los comentarios, salvo los de licencia /*! ... */, y el espacio en blanco allí donde no importa: alrededor de { } ; ,, después de : y (, antes de !important y alrededor de los combinadores \u0026gt; + ~ de los selectores. También desaparece el último punto y coma de cada bloque. Todo lo demás se copia sin cambios, de modo que las cadenas, los valores url(), los escapes como .md\\:flex, calc(1px + 2px) y los selectores descendientes como .a :hover conservan su significado. En SCSS y LESS también se eliminan los comentarios de línea //. Errores precisos: un bloque sin cerrar, una comilla que falta o una } sobrante se indican con su línea y columna, un fragmento con un indicador y el botón Ir al error. Tamaño antes y después, número de líneas y tiempo. Al abrir un archivo .scss o .less, el lenguaje cambia automáticamente. Cómo usarlo Pegue una hoja de estilos, abra un archivo o suéltelo sobre la entrada. Ejemplo carga una muestra. Elija el lenguaje y después Formatear o Minificar. Copie o descargue el resultado. Ctrl+Enter lo ejecuta al instante. El minificador no fusiona reglas, no acorta colores ni reescribe valores; para ese nivel de optimización use una herramienta de compilación como cssnano o Lightning CSS. El SCSS y el LESS minificados siguen siendo SCSS y LESS: compílelos antes de publicarlos.\nPrivacidad Todo se ejecuta en su navegador; solo se descargan de un CDN los archivos de Prettier con versión fija. Sus estilos nunca se suben a ningún servidor. La última entrada se guarda en el almacenamiento local para que una recarga no la pierda.\n","permalink":"https://www.softinbit.com/es/tools/css-beautifier/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eConvierta una hoja de estilos minificada o un archivo SCSS desordenado en código legible con una declaración por línea, o reduzca una hoja de estilos para producción. La salida se actualiza mientras escribe.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCSS, SCSS y LESS\u003c/strong\u003e: se entienden el anidamiento, las variables, los mixins, los mapas, \u003ccode\u003e@use\u003c/code\u003e, las guardas y la interpolación \u003ccode\u003e#{}\u003c/code\u003e / \u003ccode\u003e@{}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFormato con Prettier\u003c/strong\u003e con 2 espacios, 4 espacios o tabuladores, ancho de línea y comillas simples o dobles.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinificar\u003c/strong\u003e elimina los comentarios, salvo los de licencia \u003ccode\u003e/*! ... */\u003c/code\u003e, y el espacio en blanco allí donde no importa: alrededor de \u003ccode\u003e{ } ; ,\u003c/code\u003e, después de \u003ccode\u003e:\u003c/code\u003e y \u003ccode\u003e(\u003c/code\u003e, antes de \u003ccode\u003e!important\u003c/code\u003e y alrededor de los combinadores \u003ccode\u003e\u0026gt;\u003c/code\u003e \u003ccode\u003e+\u003c/code\u003e \u003ccode\u003e~\u003c/code\u003e de los selectores. También desaparece el último punto y coma de cada bloque. Todo lo demás se copia sin cambios, de modo que las cadenas, los valores \u003ccode\u003eurl()\u003c/code\u003e, los escapes como \u003ccode\u003e.md\\:flex\u003c/code\u003e, \u003ccode\u003ecalc(1px + 2px)\u003c/code\u003e y los selectores descendientes como \u003ccode\u003e.a :hover\u003c/code\u003e conservan su significado. En SCSS y LESS también se eliminan los comentarios de línea \u003ccode\u003e//\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErrores precisos\u003c/strong\u003e: un bloque sin cerrar, una comilla que falta o una \u003ccode\u003e}\u003c/code\u003e sobrante se indican con su línea y columna, un fragmento con un indicador y el botón \u003cstrong\u003eIr al error\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTamaño antes y después\u003c/strong\u003e, número de líneas y tiempo. Al abrir un archivo \u003ccode\u003e.scss\u003c/code\u003e o \u003ccode\u003e.less\u003c/code\u003e, el lenguaje cambia automáticamente.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003ePegue una hoja de estilos, abra un archivo o suéltelo sobre la entrada. \u003cstrong\u003eEjemplo\u003c/strong\u003e carga una muestra.\u003c/li\u003e\n\u003cli\u003eElija el lenguaje y después \u003cstrong\u003eFormatear\u003c/strong\u003e o \u003cstrong\u003eMinificar\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eCopie o descargue el resultado. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e lo ejecuta al instante.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eEl minificador no fusiona reglas, no acorta colores ni reescribe valores; para ese nivel de optimización use una herramienta de compilación como cssnano o Lightning CSS. El SCSS y el LESS minificados siguen siendo SCSS y LESS: compílelos antes de publicarlos.\u003c/p\u003e","title":"Embellecedor y minificador de CSS"},{"content":"Qué hace Pegue una plantilla, un correo, una página guardada desde el navegador o un bloque de HTML en una sola línea procedente de un CMS y obtenga HTML limpio y con una sangría coherente, o su versión segura más pequeña. La salida se actualiza mientras escribe.\nFunciones Formato con Prettier con 2 espacios, 4 espacios o tabuladores, el ancho de línea que elija y un atributo por línea para etiquetas largas. También se formatea el código incrustado: los bloques \u0026lt;style\u0026gt; y \u0026lt;script\u0026gt; y los atributos style=\u0026quot;\u0026quot; se embellecen con los formateadores de CSS y JavaScript. Estos analizadores adicionales solo se descargan si su documento los contiene. Espacio en blanco: Respetar display de CSS (predeterminado) nunca añade ni quita espacio donde cambiaría la representación de los elementos en línea. Estricto trata todos los elementos como en línea e Ignorar formatea con libertad. Minificar quita los comentarios (opcional; los comentarios condicionales como \u0026lt;!--[if IE]\u0026gt; se conservan), reduce cada grupo de espacios a uno solo y elimina el espacio junto a etiquetas de bloque como div, p, li o td. El contenido de \u0026lt;pre\u0026gt;, \u0026lt;textarea\u0026gt;, \u0026lt;script\u0026gt;, \u0026lt;style\u0026gt; y \u0026lt;title\u0026gt; se copia byte a byte y los valores de los atributos nunca se modifican. Errores precisos: una etiqueta sin cerrar o una etiqueta de cierre sobrante se indica con su línea y columna, un fragmento de código con un indicador y el botón Ir al error. Tamaño antes y después, número de líneas y tiempo. Cómo usarlo Pegue HTML, abra un archivo o suéltelo sobre la entrada. Ejemplo carga una página de muestra. Elija Formatear o Minificar y ajuste las opciones. Copie o descargue el resultado. Ctrl+Enter lo ejecuta al instante; desactive En vivo con archivos muy grandes. El minificador es prudente a propósito: no elimina etiquetas opcionales ni comillas de atributos y no reescribe el CSS ni el JavaScript en línea. Como en la mayoría de los minificadores de HTML, el espacio junto a etiquetas de bloque se elimina aunque su CSS las convierta en inline-block (por ejemplo, una lista horizontal de li), lo que puede cerrar pequeñas separaciones entre ellas.\nPrivacidad El formato y la minificación se realizan en su navegador; solo se descargan de un CDN los archivos de Prettier con versión fija. Su HTML nunca se sube a ningún servidor. La última entrada se guarda en el almacenamiento local para que una recarga no la pierda. Use Borrar para eliminarla.\n","permalink":"https://www.softinbit.com/es/tools/html-beautifier/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue una plantilla, un correo, una página guardada desde el navegador o un bloque de HTML en una sola línea procedente de un CMS y obtenga HTML limpio y con una sangría coherente, o su versión segura más pequeña. La salida se actualiza mientras escribe.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFormato con Prettier\u003c/strong\u003e con 2 espacios, 4 espacios o tabuladores, el ancho de línea que elija y \u003cstrong\u003eun atributo por línea\u003c/strong\u003e para etiquetas largas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTambién se formatea el código incrustado\u003c/strong\u003e: los bloques \u003ccode\u003e\u0026lt;style\u0026gt;\u003c/code\u003e y \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e y los atributos \u003ccode\u003estyle=\u0026quot;\u0026quot;\u003c/code\u003e se embellecen con los formateadores de CSS y JavaScript. Estos analizadores adicionales solo se descargan si su documento los contiene.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEspacio en blanco\u003c/strong\u003e: \u003cem\u003eRespetar display de CSS\u003c/em\u003e (predeterminado) nunca añade ni quita espacio donde cambiaría la representación de los elementos en línea. \u003cem\u003eEstricto\u003c/em\u003e trata todos los elementos como en línea e \u003cem\u003eIgnorar\u003c/em\u003e formatea con libertad.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinificar\u003c/strong\u003e quita los comentarios (opcional; los comentarios condicionales como \u003ccode\u003e\u0026lt;!--[if IE]\u0026gt;\u003c/code\u003e se conservan), reduce cada grupo de espacios a uno solo y elimina el espacio junto a etiquetas de bloque como \u003ccode\u003ediv\u003c/code\u003e, \u003ccode\u003ep\u003c/code\u003e, \u003ccode\u003eli\u003c/code\u003e o \u003ccode\u003etd\u003c/code\u003e. El contenido de \u003ccode\u003e\u0026lt;pre\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;textarea\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e, \u003ccode\u003e\u0026lt;style\u0026gt;\u003c/code\u003e y \u003ccode\u003e\u0026lt;title\u0026gt;\u003c/code\u003e se copia byte a byte y los valores de los atributos nunca se modifican.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErrores precisos\u003c/strong\u003e: una etiqueta sin cerrar o una etiqueta de cierre sobrante se indica con su línea y columna, un fragmento de código con un indicador y el botón \u003cstrong\u003eIr al error\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTamaño antes y después\u003c/strong\u003e, número de líneas y tiempo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003ePegue HTML, abra un archivo o suéltelo sobre la entrada. \u003cstrong\u003eEjemplo\u003c/strong\u003e carga una página de muestra.\u003c/li\u003e\n\u003cli\u003eElija \u003cstrong\u003eFormatear\u003c/strong\u003e o \u003cstrong\u003eMinificar\u003c/strong\u003e y ajuste las opciones.\u003c/li\u003e\n\u003cli\u003eCopie o descargue el resultado. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e lo ejecuta al instante; desactive \u003cstrong\u003eEn vivo\u003c/strong\u003e con archivos muy grandes.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eEl minificador es prudente a propósito: no elimina etiquetas opcionales ni comillas de atributos y no reescribe el CSS ni el JavaScript en línea. Como en la mayoría de los minificadores de HTML, el espacio junto a etiquetas de bloque se elimina aunque su CSS las convierta en \u003ccode\u003einline-block\u003c/code\u003e (por ejemplo, una lista horizontal de \u003ccode\u003eli\u003c/code\u003e), lo que puede cerrar pequeñas separaciones entre ellas.\u003c/p\u003e","title":"Embellecedor y minificador de HTML"},{"content":"Qué hace Pegue un texto y obténgalo escapado para el lenguaje en el que está escribiendo, o pegue un literal escapado y recupere el texto original. El resultado se actualiza mientras escribe.\nFormato Reglas de escape Cadena JSON \\\u0026quot; \\\\ \\n \\t \\uXXXX Cadena C# \\\u0026quot; \\\\ \\0 \\a \\n y escapes \\u, \\U y \\x C# textual @\u0026quot;...\u0026quot; comillas duplicadas: \u0026quot;\u0026quot; C# sin formato \u0026quot;\u0026quot;\u0026quot;...\u0026quot;\u0026quot;\u0026quot; elige un delimitador más largo que cualquier secuencia de comillas del texto JavaScript '...', \u0026quot;...\u0026quot;, `...` \\xHH, \\u{...}, continuaciones de línea, \\${ en plantillas SQL comillas simples duplicadas: '' Campo CSV entre comillas solo cuando hace falta, con las comillas duplicadas XML / HTML \u0026amp;amp; \u0026amp;lt; \u0026amp;gt; \u0026amp;quot; \u0026amp;#39;; al desescapar se decodifican las entidades con nombre y numéricas Expresión regular barra invertida delante de . * + ? ^ $ ( ) [ ] { } | / \\ Funciones destacadas Desescapar acepta el literal con o sin sus comillas, así que puede pegar @\u0026quot;C:\\temp\u0026quot; o 'O''Brien' directamente desde el código. Errores precisos: un escape no válido como \\q en C# se indica con su línea y columna. Las advertencias señalan el texto que rompería el literal, como una comilla sin escapar. Escapar no ASCII escribe cada carácter no ASCII como secuencia de escape, útil para archivos fuente que deben seguir siendo ASCII. Intercambiar vuelve a usar la salida como entrada e invierte la dirección para comprobar el viaje de ida y vuelta. Los literales de cadena sin formato toman los saltos de línea del archivo fuente, por lo que un retorno de carro (CR) aislado no se puede representar con exactitud.\nPrivacidad Todo se ejecuta en su navegador. Su entrada solo se guarda en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/escape-unescape/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un texto y obténgalo escapado para el lenguaje en el que está escribiendo, o pegue un literal escapado y recupere el texto original. El resultado se actualiza mientras escribe.\u003c/p\u003e\n\u003ctable\u003e\n\t\u003cthead\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003cth\u003eFormato\u003c/th\u003e\n\t\t\t\t\t\u003cth\u003eReglas de escape\u003c/th\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/thead\u003e\n\t\u003ctbody\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eCadena JSON\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ccode\u003e\\\u0026quot;\u003c/code\u003e \u003ccode\u003e\\\\\u003c/code\u003e \u003ccode\u003e\\n\u003c/code\u003e \u003ccode\u003e\\t\u003c/code\u003e \u003ccode\u003e\\uXXXX\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eCadena C#\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ccode\u003e\\\u0026quot;\u003c/code\u003e \u003ccode\u003e\\\\\u003c/code\u003e \u003ccode\u003e\\0\u003c/code\u003e \u003ccode\u003e\\a\u003c/code\u003e \u003ccode\u003e\\n\u003c/code\u003e y escapes \u003ccode\u003e\\u\u003c/code\u003e, \u003ccode\u003e\\U\u003c/code\u003e y \u003ccode\u003e\\x\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eC# textual \u003ccode\u003e@\u0026quot;...\u0026quot;\u003c/code\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003ecomillas duplicadas: \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eC# sin formato \u003ccode\u003e\u0026quot;\u0026quot;\u0026quot;...\u0026quot;\u0026quot;\u0026quot;\u003c/code\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eelige un delimitador más largo que cualquier secuencia de comillas del texto\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eJavaScript \u003ccode\u003e'...'\u003c/code\u003e, \u003ccode\u003e\u0026quot;...\u0026quot;\u003c/code\u003e, \u003ccode\u003e`...`\u003c/code\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ccode\u003e\\xHH\u003c/code\u003e, \u003ccode\u003e\\u{...}\u003c/code\u003e, continuaciones de línea, \u003ccode\u003e\\${\u003c/code\u003e en plantillas\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eSQL\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003ecomillas simples duplicadas: \u003ccode\u003e''\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eCampo CSV\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eentre comillas solo cuando hace falta, con las comillas duplicadas\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eXML / HTML\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ccode\u003e\u0026amp;amp;\u003c/code\u003e \u003ccode\u003e\u0026amp;lt;\u003c/code\u003e \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e \u003ccode\u003e\u0026amp;quot;\u003c/code\u003e \u003ccode\u003e\u0026amp;#39;\u003c/code\u003e; al desescapar se decodifican las entidades con nombre y numéricas\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eExpresión regular\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003ebarra invertida delante de \u003ccode\u003e. * + ? ^ $ ( ) [ ] { } | / \\\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"funciones-destacadas\"\u003eFunciones destacadas\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDesescapar acepta el literal con o sin sus comillas\u003c/strong\u003e, así que puede pegar \u003ccode\u003e@\u0026quot;C:\\temp\u0026quot;\u003c/code\u003e o \u003ccode\u003e'O''Brien'\u003c/code\u003e directamente desde el código.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErrores precisos\u003c/strong\u003e: un escape no válido como \u003ccode\u003e\\q\u003c/code\u003e en C# se indica con su línea y columna. Las advertencias señalan el texto que rompería el literal, como una comilla sin escapar.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEscapar no ASCII\u003c/strong\u003e escribe cada carácter no ASCII como secuencia de escape, útil para archivos fuente que deben seguir siendo ASCII.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIntercambiar\u003c/strong\u003e vuelve a usar la salida como entrada e invierte la dirección para comprobar el viaje de ida y vuelta.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLos literales de cadena sin formato toman los saltos de línea del archivo fuente, por lo que un retorno de carro (CR) aislado no se puede representar con exactitud.\u003c/p\u003e","title":"Escapar / Desescapar"},{"content":"Qué hace Pegue una consulta copiada de un log, una traza de ORM o un procedimiento almacenado y recupérela legible: una cláusula por línea, joins y subconsultas con sangría y mayúsculas coherentes en las palabras clave. Se vuelve a formatear mientras escribe.\nFunciones Compatible con dialectos: SQL Server (T-SQL) es el predeterminado, con @variables, tablas #temp, [nombres entre corchetes], cadenas N'unicode' y separadores GO. También se admiten PostgreSQL (parámetros $1, conversiones ::, cadenas $$), MySQL, MariaDB, SQLite, SQL estándar, Oracle PL/SQL, Snowflake y BigQuery. Mayúsculas de palabras clave: MAYÚSCULAS, minúsculas o conservadas, aplicables opcionalmente también a nombres de funciones y tipos de datos. Sangría de 2 o 4 espacios o tabuladores, diseño estándar o tabular, líneas en blanco entre sentencias y operadores compactos. Minificar reduce una consulta al menor número posible de líneas para logs o archivos de configuración. Elimina los comentarios, pero conserva intactos el contenido de las cadenas, los identificadores entre comillas, las sugerencias del optimizador (/*+ ... */) y las líneas GO de T-SQL. Errores claros: si la consulta no se puede analizar en el dialecto seleccionado, verá la línea, la columna y un fragmento con un indicador; a menudo es una pista de que se necesita otro dialecto. Cómo usarlo Elija el dialecto, pegue la consulta o suelte un archivo .sql y copie o descargue el resultado. Ctrl+Enter formatea al instante. El formato usa la biblioteca de código abierto sql-formatter; el código procedimental (bloques BEGIN ... END) y las sugerencias de tabla como WITH (NOLOCK) siguen siendo válidos, pero se disponen de forma más sencilla que las consultas normales.\nPrivacidad Su SQL se formatea en su navegador y nunca se envía a ningún sitio. La última entrada se guarda en el almacenamiento local para que no se pierda al recargar.\n","permalink":"https://www.softinbit.com/es/tools/sql-formatter/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue una consulta copiada de un log, una traza de ORM o un procedimiento almacenado y recupérela legible: una cláusula por línea, joins y subconsultas con sangría y mayúsculas coherentes en las palabras clave. Se vuelve a formatear mientras escribe.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCompatible con dialectos\u003c/strong\u003e: SQL Server (T-SQL) es el predeterminado, con \u003ccode\u003e@variables\u003c/code\u003e, tablas \u003ccode\u003e#temp\u003c/code\u003e, \u003ccode\u003e[nombres entre corchetes]\u003c/code\u003e, cadenas \u003ccode\u003eN'unicode'\u003c/code\u003e y separadores \u003ccode\u003eGO\u003c/code\u003e. También se admiten PostgreSQL (parámetros \u003ccode\u003e$1\u003c/code\u003e, conversiones \u003ccode\u003e::\u003c/code\u003e, cadenas \u003ccode\u003e$$\u003c/code\u003e), MySQL, MariaDB, SQLite, SQL estándar, Oracle PL/SQL, Snowflake y BigQuery.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMayúsculas de palabras clave\u003c/strong\u003e: MAYÚSCULAS, minúsculas o conservadas, aplicables opcionalmente también a nombres de funciones y tipos de datos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSangría\u003c/strong\u003e de 2 o 4 espacios o tabuladores, diseño estándar o tabular, líneas en blanco entre sentencias y operadores compactos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinificar\u003c/strong\u003e reduce una consulta al menor número posible de líneas para logs o archivos de configuración. Elimina los comentarios, pero conserva intactos el contenido de las cadenas, los identificadores entre comillas, las sugerencias del optimizador (\u003ccode\u003e/*+ ... */\u003c/code\u003e) y las líneas \u003ccode\u003eGO\u003c/code\u003e de T-SQL.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErrores claros\u003c/strong\u003e: si la consulta no se puede analizar en el dialecto seleccionado, verá la línea, la columna y un fragmento con un indicador; a menudo es una pista de que se necesita otro dialecto.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003eElija el dialecto, pegue la consulta o suelte un archivo \u003ccode\u003e.sql\u003c/code\u003e y copie o descargue el resultado. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e formatea al instante. El formato usa la biblioteca de código abierto sql-formatter; el código procedimental (bloques \u003ccode\u003eBEGIN ... END\u003c/code\u003e) y las sugerencias de tabla como \u003ccode\u003eWITH (NOLOCK)\u003c/code\u003e siguen siendo válidos, pero se disponen de forma más sencilla que las consultas normales.\u003c/p\u003e","title":"Formateador SQL"},{"content":"Qué hace Pegue XML (una respuesta SOAP, un web.config, un .csproj, un feed RSS) y obténgalo con sangría y validado mientras escribe. Si el documento no está bien formado, verá la línea, la columna y el mensaje del analizador, con un fragmento que señala el problema.\nFunciones Formato legible o minificado con 2 espacios, 4 espacios o tabuladores y, opcionalmente, un atributo por línea para los elementos con muchos atributos. No se pierde nada: se conservan la declaración XML, el DOCTYPE (incluido un subconjunto interno), los comentarios, las secciones CDATA y las instrucciones de procesamiento. Desactive Conservar comentarios para eliminarlos. Seguro con el texto: los elementos que solo contienen texto se quedan en una línea tal como están escritos, el contenido mixto (texto con elementos en línea) no se vuelve a sangrar y se respeta xml:space=\u0026quot;preserve\u0026quot;. Probador de XPath 1.0: escriba una expresión y vea cada nodo coincidente con su ruta (/orders/order[2]/customer), o el resultado numérico, de cadena o booleano. Los prefijos de espacio de nombres declarados en el documento funcionan directamente (//pay:payment), y un espacio de nombres predeterminado se asigna automáticamente al prefijo d:. Estadísticas: tamaño de entrada y de salida, número de elementos y atributos, y profundidad de anidamiento. Cómo usarlo Pegue XML o suelte un archivo, elija Legible o Minificar y copie o descargue el resultado. Escriba una expresión XPath en el cuadro situado debajo de la salida para consultar el documento.\nPrivacidad El análisis usa el analizador XML y el motor XPath integrados en su navegador. No se sube nada; su última entrada y su última expresión se guardan en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/xml-formatter/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue XML (una respuesta SOAP, un \u003ccode\u003eweb.config\u003c/code\u003e, un \u003ccode\u003e.csproj\u003c/code\u003e, un feed RSS) y obténgalo con sangría y validado mientras escribe. Si el documento no está bien formado, verá la línea, la columna y el mensaje del analizador, con un fragmento que señala el problema.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFormato legible o minificado\u003c/strong\u003e con 2 espacios, 4 espacios o tabuladores y, opcionalmente, un atributo por línea para los elementos con muchos atributos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNo se pierde nada\u003c/strong\u003e: se conservan la declaración XML, el \u003ccode\u003eDOCTYPE\u003c/code\u003e (incluido un subconjunto interno), los comentarios, las secciones \u003ccode\u003eCDATA\u003c/code\u003e y las instrucciones de procesamiento. Desactive \u003cstrong\u003eConservar comentarios\u003c/strong\u003e para eliminarlos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSeguro con el texto\u003c/strong\u003e: los elementos que solo contienen texto se quedan en una línea tal como están escritos, el contenido mixto (texto con elementos en línea) no se vuelve a sangrar y se respeta \u003ccode\u003exml:space=\u0026quot;preserve\u0026quot;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProbador de XPath 1.0\u003c/strong\u003e: escriba una expresión y vea cada nodo coincidente con su ruta (\u003ccode\u003e/orders/order[2]/customer\u003c/code\u003e), o el resultado numérico, de cadena o booleano. Los prefijos de espacio de nombres declarados en el documento funcionan directamente (\u003ccode\u003e//pay:payment\u003c/code\u003e), y un espacio de nombres predeterminado se asigna automáticamente al prefijo \u003ccode\u003ed:\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEstadísticas\u003c/strong\u003e: tamaño de entrada y de salida, número de elementos y atributos, y profundidad de anidamiento.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003ePegue XML o suelte un archivo, elija Legible o Minificar y copie o descargue el resultado. Escriba una expresión XPath en el cuadro situado debajo de la salida para consultar el documento.\u003c/p\u003e","title":"Formateador XML y probador de XPath"},{"content":"Qué hace Pegue JSON y se valida y formatea mientras escribe. Si algo falla, obtiene la línea y columna exactas, una explicación clara (por ejemplo «Coma final antes de }» o «Los nombres de propiedad deben ir entre comillas dobles») y un fragmento con un acento circunflejo bajo el problema. Ir al error coloca el cursor justo en ese punto de la entrada.\nFunciones Salida legible o minificada con 2 espacios, 4 espacios o tabulaciones. Ordenar claves alfabéticamente en todos los niveles, lo que facilita comparar dos documentos. Corrección automática repara antes del análisis los daños habituales de copiar y pegar: comentarios // y /* */, comas finales, cadenas con comillas simples, nombres de propiedad sin comillas, True/False/None de Python, saltos de línea sin escapar dentro de cadenas y espacios de no separación. La línea de estado enumera cada reparación realizada. Formateo sin pérdidas: los números se escriben exactamente como los tecleó, de modo que 12345678901234567890 y 1.10 no se redondean ni se reescriben, y se conservan los escapes de las cadenas. Vista de árbol con nodos plegables, expandir/contraer todo y la JSONPath del nodo en el que hace clic (por ejemplo $.orders[0].total), lista para copiar. Estadísticas: tamaño de entrada y de salida, número de claves, objetos y arrays, y la profundidad máxima de anidamiento. Las claves duplicadas se señalan como advertencia. Cómo usarlo Pegue JSON, abra un archivo o suéltelo sobre la entrada. Elija Legible o Minificar y la sangría que desee. Copie o descargue el resultado. Ctrl+Enter formatea al instante. Privacidad El análisis y el formateo se realizan en su navegador. No se sube nada; su última entrada se guarda en el almacenamiento local del navegador para que no se pierda al recargar la página. Use Borrar para eliminarla.\n","permalink":"https://www.softinbit.com/es/tools/json-formatter/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue JSON y se valida y formatea mientras escribe. Si algo falla, obtiene la \u003cstrong\u003elínea y columna\u003c/strong\u003e exactas, una explicación clara (por ejemplo «Coma final antes de }» o «Los nombres de propiedad deben ir entre comillas dobles») y un fragmento con un acento circunflejo bajo el problema. \u003cstrong\u003eIr al error\u003c/strong\u003e coloca el cursor justo en ese punto de la entrada.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSalida \u003cstrong\u003elegible o minificada\u003c/strong\u003e con 2 espacios, 4 espacios o tabulaciones.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOrdenar claves\u003c/strong\u003e alfabéticamente en todos los niveles, lo que facilita comparar dos documentos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorrección automática\u003c/strong\u003e repara antes del análisis los daños habituales de copiar y pegar: comentarios \u003ccode\u003e//\u003c/code\u003e y \u003ccode\u003e/* */\u003c/code\u003e, comas finales, cadenas con comillas simples, nombres de propiedad sin comillas, \u003ccode\u003eTrue\u003c/code\u003e/\u003ccode\u003eFalse\u003c/code\u003e/\u003ccode\u003eNone\u003c/code\u003e de Python, saltos de línea sin escapar dentro de cadenas y espacios de no separación. La línea de estado enumera cada reparación realizada.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFormateo sin pérdidas\u003c/strong\u003e: los números se escriben exactamente como los tecleó, de modo que \u003ccode\u003e12345678901234567890\u003c/code\u003e y \u003ccode\u003e1.10\u003c/code\u003e no se redondean ni se reescriben, y se conservan los escapes de las cadenas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVista de árbol\u003c/strong\u003e con nodos plegables, expandir/contraer todo y la JSONPath del nodo en el que hace clic (por ejemplo \u003ccode\u003e$.orders[0].total\u003c/code\u003e), lista para copiar.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEstadísticas\u003c/strong\u003e: tamaño de entrada y de salida, número de claves, objetos y arrays, y la profundidad máxima de anidamiento. Las claves duplicadas se señalan como advertencia.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003ePegue JSON, abra un archivo o suéltelo sobre la entrada.\u003c/li\u003e\n\u003cli\u003eElija Legible o Minificar y la sangría que desee.\u003c/li\u003e\n\u003cli\u003eCopie o descargue el resultado. \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e formatea al instante.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"privacidad\"\u003ePrivacidad\u003c/h2\u003e\n\u003cp\u003eEl análisis y el formateo se realizan en su navegador. No se sube nada; su última entrada se guarda en el almacenamiento local del navegador para que no se pierda al recargar la página. Use \u003cstrong\u003eBorrar\u003c/strong\u003e para eliminarla.\u003c/p\u003e","title":"Formateador y validador de JSON"},{"content":"Qué hace Crea un código QR estático mientras escribe. Las plantillas se encargan del formato de texto exacto que esperan las cámaras de los móviles:\nTexto / URL: cualquier texto o enlace. Wi-Fi: nombre de la red, contraseña, cifrado (WPA/WPA2/WPA3, WEP o abierta) y redes ocultas. Los caracteres especiales se escapan automáticamente. Correo electrónico: un enlace mailto: con asunto y mensaje. Teléfono y SMS: marcar un número o abrir un mensaje de texto ya rellenado. vCard: una tarjeta de contacto (vCard 3.0) con nombre, organización, teléfonos, correo electrónico, sitio web y dirección. El recuadro Contenido codificado muestra el texto exacto almacenado en el código, para que pueda comprobarlo o reutilizarlo.\nOpciones Corrección de errores L, M, Q o H. Los niveles altos resisten más daños, o un logotipo superpuesto, pero hacen el código más denso. Tamaño y margen (zona de silencio). Los módulos se alinean a píxeles enteros para que la imagen se vea nítida. Colores, con avisos cuando el contraste es demasiado bajo o los colores están invertidos, ya que algunos lectores no pueden leer esos códigos. Un aviso o un error cuando el contenido es demasiado largo para el nivel de corrección de errores elegido. Descárguelo en PNG para documentos y chats, o en SVG para impresión y herramientas de diseño, donde se escala sin perder nitidez.\nLos códigos generados son estáticos: el contenido se guarda en la propia imagen, sin servicios de redirección intermedios y sin caducidad.\nPrivacidad Los códigos se generan en su navegador con la biblioteca de código abierto qrcode-generator. No se sube nada de lo que introduce. La contraseña Wi-Fi nunca se guarda; los demás campos se recuerdan en este dispositivo.\n","permalink":"https://www.softinbit.com/es/tools/qr-code/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eCrea un código QR estático mientras escribe. Las plantillas se encargan del formato de texto exacto que esperan las cámaras de los móviles:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTexto / URL\u003c/strong\u003e: cualquier texto o enlace.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWi-Fi\u003c/strong\u003e: nombre de la red, contraseña, cifrado (WPA/WPA2/WPA3, WEP o abierta) y redes ocultas. Los caracteres especiales se escapan automáticamente.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorreo electrónico\u003c/strong\u003e: un enlace \u003ccode\u003emailto:\u003c/code\u003e con asunto y mensaje.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTeléfono\u003c/strong\u003e y \u003cstrong\u003eSMS\u003c/strong\u003e: marcar un número o abrir un mensaje de texto ya rellenado.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003evCard\u003c/strong\u003e: una tarjeta de contacto (vCard 3.0) con nombre, organización, teléfonos, correo electrónico, sitio web y dirección.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEl recuadro \u003cstrong\u003eContenido codificado\u003c/strong\u003e muestra el texto exacto almacenado en el código, para que pueda comprobarlo o reutilizarlo.\u003c/p\u003e","title":"Generador de códigos QR"},{"content":"Qué hace Crea contraseñas o frases de contraseña aleatorias con el generador criptográfico de números aleatorios de su navegador (crypto.getRandomValues). Cada carácter y cada palabra se eligen con muestreo por rechazo, de modo que ningún símbolo es más probable que otro.\nModo contraseña\nLongitud de 4 a 128 caracteres. Elija mayúsculas, minúsculas, dígitos, símbolos y sus propios caracteres personalizados. Excluya caracteres parecidos como I, l, 1, O y 0 en contraseñas que se vayan a leer en voz alta o escribir a mano. Al menos uno de cada conjunto cumple las políticas de contraseñas habituales. El generador elige de forma uniforme entre todas las contraseñas que cumplen la regla, y la entropía mostrada se calcula exactamente para esa regla. Genere hasta 500 a la vez y luego cópielas o descárguelas. El modo frase de contraseña elige palabras de la EFF Short Wordlist (1.296 palabras en inglés, CC BY 3.0 de la Electronic Frontier Foundation). Cada palabra aporta unos 10,3 bits. Opciones: número de palabras, separador, mayúscula inicial y un dígito añadido.\nCómo leer el medidor de seguridad La entropía es el logaritmo en base 2 del número de resultados distintos que pueden producir los ajustes actuales. Supone que un atacante conoce sus ajustes, que es el peor caso honesto. Como guía aproximada: menos de 40 bits es débil, 60 bits es razonable para cuentas en línea y 80 bits o más es fuerte. La valoración no se aplica a contraseñas que invente usted mismo.\nPrivacidad Las contraseñas se generan en su navegador y nunca se envían ni se guardan. Solo sus ajustes (longitud, conjuntos, número de palabras) se recuerdan en este dispositivo.\n","permalink":"https://www.softinbit.com/es/tools/password/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eCrea contraseñas o frases de contraseña aleatorias con el generador criptográfico de números aleatorios de su navegador (\u003ccode\u003ecrypto.getRandomValues\u003c/code\u003e). Cada carácter y cada palabra se eligen con muestreo por rechazo, de modo que ningún símbolo es más probable que otro.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eModo contraseña\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLongitud de 4 a 128 caracteres.\u003c/li\u003e\n\u003cli\u003eElija mayúsculas, minúsculas, dígitos, símbolos y sus propios caracteres \u003cstrong\u003epersonalizados\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExcluya caracteres parecidos\u003c/strong\u003e como \u003ccode\u003eI\u003c/code\u003e, \u003ccode\u003el\u003c/code\u003e, \u003ccode\u003e1\u003c/code\u003e, \u003ccode\u003eO\u003c/code\u003e y \u003ccode\u003e0\u003c/code\u003e en contraseñas que se vayan a leer en voz alta o escribir a mano.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAl menos uno de cada conjunto\u003c/strong\u003e cumple las políticas de contraseñas habituales. El generador elige de forma uniforme entre todas las contraseñas que cumplen la regla, y la entropía mostrada se calcula exactamente para esa regla.\u003c/li\u003e\n\u003cli\u003eGenere hasta 500 a la vez y luego cópielas o descárguelas.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEl \u003cstrong\u003emodo frase de contraseña\u003c/strong\u003e elige palabras de la EFF Short Wordlist (1.296 palabras en inglés, CC BY 3.0 de la Electronic Frontier Foundation). Cada palabra aporta unos 10,3 bits. Opciones: número de palabras, separador, mayúscula inicial y un dígito añadido.\u003c/p\u003e","title":"Generador de contraseñas"},{"content":"Qué hace Describa las filas que necesita y obtenga datos de prueba realistas en el formato que espera su código. Cada campo tiene un nombre, un tipo, sus propias opciones (rangos, decimales, intervalos de fechas, listas de valores, marca de tarjeta, rango de IP) y un % de nulos para las columnas opcionales.\n31 tipos de campo: nombres, correos electrónicos, nombres de usuario, teléfonos, empresas, cargos, direcciones, texto lorem, números, booleanos con un % de verdaderos, fechas, GUID, secuencias, listas de valores, valores tipo IBAN con un control mod-97 válido, números de tarjeta de prueba válidos según Luhn, URL, IP, colores hex, productos, precios y estados. Nombres, ciudades, calles y empresas en inglés y en turco, con los caracteres turcos correctos. Los códigos postales turcos empiezan por el código de matrícula de la ciudad. Filas coherentes: el correo, el nombre de usuario y el nombre completo se generan a partir de la misma persona que los campos de nombre y apellido. Semilla: la misma semilla y el mismo esquema dan siempre las mismas filas. Déjela vacía para obtener datos aleatorios nuevos. Formatos de salida JSON, JSON Lines, CSV (coma, punto y coma o tabulador, con BOM opcional para que Excel muestre bien los caracteres turcos), SQL INSERT para T-SQL (cadenas N'…', como máximo 1000 filas por instrucción) o PostgreSQL con CREATE TABLE opcional, y C#: un record más una lista lista para usar, o un Faker\u0026lt;T\u0026gt; de Bogus que recrea el esquema en sus pruebas. Bogus usa su propio generador aleatorio, por lo que sus valores no coincidirán con los de esta página.\nCómo usarlo Parta de una plantilla (Clientes, Pedidos, Productos, Usuarios), edite los campos, elija el número de filas y el formato, y copie o descargue el resultado.\nPrivacidad Todo se genera en su navegador con crypto.getRandomValues, o con un generador basado en semilla cuando usted define una. Los correos usan el dominio reservado example.com y las URL el dominio reservado .example. Su esquema y su configuración solo se guardan en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/mock-data/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eDescriba las filas que necesita y obtenga datos de prueba realistas en el formato que espera su código. Cada campo tiene un nombre, un tipo, sus propias opciones (rangos, decimales, intervalos de fechas, listas de valores, marca de tarjeta, rango de IP) y un \u003cstrong\u003e% de nulos\u003c/strong\u003e para las columnas opcionales.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e31 tipos de campo\u003c/strong\u003e: nombres, correos electrónicos, nombres de usuario, teléfonos, empresas, cargos, direcciones, texto lorem, números, booleanos con un % de verdaderos, fechas, GUID, secuencias, listas de valores, valores tipo IBAN con un control mod-97 válido, números de tarjeta de \u003cstrong\u003eprueba\u003c/strong\u003e válidos según Luhn, URL, IP, colores hex, productos, precios y estados.\u003c/li\u003e\n\u003cli\u003eNombres, ciudades, calles y empresas \u003cstrong\u003een inglés y en turco\u003c/strong\u003e, con los caracteres turcos correctos. Los códigos postales turcos empiezan por el código de matrícula de la ciudad.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFilas coherentes\u003c/strong\u003e: el correo, el nombre de usuario y el nombre completo se generan a partir de la misma persona que los campos de nombre y apellido.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSemilla\u003c/strong\u003e: la misma semilla y el mismo esquema dan siempre las mismas filas. Déjela vacía para obtener datos aleatorios nuevos.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"formatos-de-salida\"\u003eFormatos de salida\u003c/h2\u003e\n\u003cp\u003eJSON, JSON Lines, CSV (coma, punto y coma o tabulador, con BOM opcional para que Excel muestre bien los caracteres turcos), SQL \u003ccode\u003eINSERT\u003c/code\u003e para T-SQL (cadenas \u003ccode\u003eN'…'\u003c/code\u003e, como máximo 1000 filas por instrucción) o PostgreSQL con \u003ccode\u003eCREATE TABLE\u003c/code\u003e opcional, y C#: un \u003ccode\u003erecord\u003c/code\u003e más una lista lista para usar, o un \u003ccode\u003eFaker\u0026lt;T\u0026gt;\u003c/code\u003e de Bogus que recrea el esquema en sus pruebas. Bogus usa su propio generador aleatorio, por lo que sus valores no coincidirán con los de esta página.\u003c/p\u003e","title":"Generador de datos de prueba"},{"content":"Qué hace Escriba texto o suelte un archivo y verá a la vez todos los resúmenes habituales: MD5, SHA-1, SHA-256, SHA-384, SHA-512 y CRC-32. No hay que elegir antes un algoritmo ni pulsar ningún botón; la tabla se actualiza mientras escribe.\nChecksums de archivos: suelte un archivo (hasta 1 GB) para obtener sus hashes y pegue la suma de verificación de la página de descarga en Comparar con el hash esperado. El algoritmo que coincide se resalta, así que no necesita saber cuál usó el editor. Los valores pegados pueden ser hex en mayúsculas o minúsculas, Base64, separados por dos puntos o una línea copiada de la salida de sha256sum o de shasum de BSD. Modo HMAC: firme texto con una clave secreta, por ejemplo para comprobar la firma de un webhook. La clave puede ser texto UTF-8, hex o Base64. CRC-32 se oculta en este modo porque no es un hash con clave. Salida en hex en minúsculas, hex en mayúsculas o Base64. Copie un valor, cópielos todos o descárguelos como archivo de texto. El texto se codifica en UTF-8 antes de calcular el hash, igual que hacen por defecto la mayoría de los lenguajes de programación.\nMD5 y SHA-1 se marcan como heredado: sirven para detectar daños accidentales, pero no deben usarse para contraseñas ni firmas. Para contraseñas, use un algoritmo diseñado para ello, como Argon2, scrypt o PBKDF2.\nPrivacidad El hash se calcula en su navegador con la Web Crypto API (MD5 y CRC-32 los calcula el propio código de esta página). Los archivos se leen localmente y nunca se suben. La clave HMAC nunca se guarda.\n","permalink":"https://www.softinbit.com/es/tools/hash/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eEscriba texto o suelte un archivo y verá a la vez todos los resúmenes habituales: \u003cstrong\u003eMD5, SHA-1, SHA-256, SHA-384, SHA-512 y CRC-32\u003c/strong\u003e. No hay que elegir antes un algoritmo ni pulsar ningún botón; la tabla se actualiza mientras escribe.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChecksums de archivos\u003c/strong\u003e: suelte un archivo (hasta 1 GB) para obtener sus hashes y pegue la suma de verificación de la página de descarga en \u003cstrong\u003eComparar con el hash esperado\u003c/strong\u003e. El algoritmo que coincide se resalta, así que no necesita saber cuál usó el editor. Los valores pegados pueden ser hex en mayúsculas o minúsculas, Base64, separados por dos puntos o una línea copiada de la salida de \u003ccode\u003esha256sum\u003c/code\u003e o de \u003ccode\u003eshasum\u003c/code\u003e de BSD.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eModo HMAC\u003c/strong\u003e: firme texto con una clave secreta, por ejemplo para comprobar la firma de un webhook. La clave puede ser texto UTF-8, hex o Base64. CRC-32 se oculta en este modo porque no es un hash con clave.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSalida\u003c/strong\u003e en hex en minúsculas, hex en mayúsculas o Base64. Copie un valor, cópielos todos o descárguelos como archivo de texto.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEl texto se codifica en UTF-8 antes de calcular el hash, igual que hacen por defecto la mayoría de los lenguajes de programación.\u003c/p\u003e","title":"Generador de hash y checksum"},{"content":"Qué hace Produce texto de relleno Lorem Ipsum para maquetas, diseños y datos de prueba. El texto se actualiza en cuanto cambia un ajuste.\nPárrafos, frases o palabras: hasta 100 párrafos, 1.000 frases o 10.000 palabras. Inicio clásico: empiece con «Lorem ipsum dolor sit amet, consectetur adipiscing elit.» o desactívelo para que el texto empiece al azar. Tres formatos de salida: texto sin formato con líneas en blanco entre párrafos, HTML envuelto en etiquetas \u0026lt;p\u0026gt; o Markdown. Encabezados, lista y énfasis (HTML y Markdown): intercala encabezados \u0026lt;h2\u0026gt;, una lista con viñetas y palabras en negrita y cursiva, algo muy útil para comprobar cómo una hoja de estilos o un CMS muestra contenido enriquecido. Ajustes rápidos para las cantidades habituales, recuento de palabras y caracteres en directo, y copia o descarga como .txt, .html o .md. Las frases varían de longitud y algunas contienen comas, de modo que los saltos de línea y el ajuste del texto parecen texto real y no un bloque repetido.\nCómo usarlo Introduzca un número, elija párrafos, frases o palabras y seleccione un formato. Pulse Regenerar (o Ctrl+Enter) para obtener una nueva variación aleatoria y copie el resultado.\nPrivacidad El texto se genera en su navegador. No se envía nada a ningún servidor; solo se recuerdan sus ajustes en este dispositivo.\n","permalink":"https://www.softinbit.com/es/tools/lorem-ipsum/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eProduce texto de relleno Lorem Ipsum para maquetas, diseños y datos de prueba. El texto se actualiza en cuanto cambia un ajuste.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePárrafos, frases o palabras\u003c/strong\u003e: hasta 100 párrafos, 1.000 frases o 10.000 palabras.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eInicio clásico\u003c/strong\u003e: empiece con «Lorem ipsum dolor sit amet, consectetur adipiscing elit.» o desactívelo para que el texto empiece al azar.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTres formatos de salida\u003c/strong\u003e: texto sin formato con líneas en blanco entre párrafos, HTML envuelto en etiquetas \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e o Markdown.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEncabezados, lista y énfasis\u003c/strong\u003e (HTML y Markdown): intercala encabezados \u003ccode\u003e\u0026lt;h2\u0026gt;\u003c/code\u003e, una lista con viñetas y palabras en negrita y cursiva, algo muy útil para comprobar cómo una hoja de estilos o un CMS muestra contenido enriquecido.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAjustes rápidos\u003c/strong\u003e para las cantidades habituales, recuento de palabras y caracteres en directo, y copia o descarga como \u003ccode\u003e.txt\u003c/code\u003e, \u003ccode\u003e.html\u003c/code\u003e o \u003ccode\u003e.md\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLas frases varían de longitud y algunas contienen comas, de modo que los saltos de línea y el ajuste del texto parecen texto real y no un bloque repetido.\u003c/p\u003e","title":"Generador de Lorem Ipsum"},{"content":"Qué hace Elija un tipo de clave y obtenga un par de claves nuevo, generado por la API WebCrypto de su navegador:\nRSA de 2048, 3072 o 4096 bits para RS256/384/512 (PKCS#1 v1.5), PS256/384/512 (PSS) o cifrado RSA-OAEP. ECDSA P-256, P-384 y P-521 (ES256, ES384, ES512). Ed25519 si su navegador lo admite (se detecta automáticamente). Cada clave se muestra como PEM (PKCS#8 privada, SPKI pública), como JWK con kid igual a la huella RFC 7638, como JWKS listo para usar y como clave pública OpenSSH. Las claves RSA también están disponibles como PKCS#1 (RSA PRIVATE KEY / RSA PUBLIC KEY) y como XML \u0026lt;RSAKeyValue\u0026gt; de .NET Framework, rellenado tal como exige RSAParameters. Cada par nuevo se comprueba con un ciclo de firma/verificación (o cifrado/descifrado), y se enumeran las huellas SHA-256 de SPKI, JWK y OpenSSH.\nUso en .NET El panel Úsela en .NET le da código C# para su clave: validar JWT con AddJwtBearer y RsaSecurityKey / ECDsaSecurityKey (con el kid y el algoritmo correctos), emitir tokens con JsonWebTokenHandler, cargar y convertir claves con ImportFromPem, cifrado RSA-OAEP con su límite de tamaño y la vía XML de .NET Framework.\nConvertir claves existentes Cambie a Convertir una clave y pegue o arrastre un PEM (PKCS#8, SPKI, PKCS#1, SEC1 EC PRIVATE KEY), un certificado X.509, un JWK / JWKS o un XML \u0026lt;RSAKeyValue\u0026gt; para obtener todos los demás formatos.\nPrivacidad Las claves se generan y convierten en su navegador y nunca se envían a ningún sitio. Las claves privadas no se guardan, ni siquiera en el almacenamiento local; solo se recuerdan las opciones elegidas. Las claves generadas en el navegador sirven para desarrollo y pruebas; guarde las claves de producción en un almacén seguro (vault) o en un HSM.\n","permalink":"https://www.softinbit.com/es/tools/rsa-keygen/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eElija un tipo de clave y obtenga un par de claves nuevo, generado por la API WebCrypto de su navegador:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRSA\u003c/strong\u003e de 2048, 3072 o 4096 bits para RS256/384/512 (PKCS#1 v1.5), PS256/384/512 (PSS) o cifrado RSA-OAEP.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eECDSA\u003c/strong\u003e P-256, P-384 y P-521 (ES256, ES384, ES512).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEd25519\u003c/strong\u003e si su navegador lo admite (se detecta automáticamente).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCada clave se muestra como \u003cstrong\u003ePEM\u003c/strong\u003e (PKCS#8 privada, SPKI pública), como \u003cstrong\u003eJWK\u003c/strong\u003e con \u003ccode\u003ekid\u003c/code\u003e igual a la huella RFC 7638, como \u003cstrong\u003eJWKS\u003c/strong\u003e listo para usar y como clave pública \u003cstrong\u003eOpenSSH\u003c/strong\u003e. Las claves RSA también están disponibles como \u003cstrong\u003ePKCS#1\u003c/strong\u003e (\u003ccode\u003eRSA PRIVATE KEY\u003c/code\u003e / \u003ccode\u003eRSA PUBLIC KEY\u003c/code\u003e) y como \u003cstrong\u003eXML \u003ccode\u003e\u0026lt;RSAKeyValue\u0026gt;\u003c/code\u003e\u003c/strong\u003e de .NET Framework, rellenado tal como exige \u003ccode\u003eRSAParameters\u003c/code\u003e. Cada par nuevo se comprueba con un ciclo de firma/verificación (o cifrado/descifrado), y se enumeran las huellas SHA-256 de SPKI, JWK y OpenSSH.\u003c/p\u003e","title":"Generador de pares de claves RSA y ECDSA"},{"content":"Qué hace Genere de uno a 1.000 identificadores a la vez y péguelos directamente en su código:\nUUID v4: 122 bits aleatorios, el GUID clásico. UUID v7 (RFC 9562): una marca de tiempo Unix de 48 bits en milisegundos seguida de bits aleatorios. Los valores v7 se ordenan por fecha de creación, lo que mantiene compactos los índices de la base de datos. ULID: 26 caracteres en Crockford Base32, también ordenable por tiempo y seguro para URL. Los valores especiales Nil y Max. Dentro de un lote, los valores v7 y ULID son estrictamente crecientes aunque se generen muchos en el mismo milisegundo (se conserva la marca de tiempo y se incrementa la parte aleatoria, como describe RFC 9562 para la generación monótona).\nLas opciones de formato incluyen minúsculas o MAYÚSCULAS, con o sin guiones, {llaves} como en .NET Guid.ToString(\u0026quot;B\u0026quot;), comillas dobles o simples y separadores de coma para arrays y listas SQL IN (...).\nInspector Pegue cualquier UUID, GUID o ULID para ver su versión, variante y validez. En v1, v6, v7 y ULID, la marca de tiempo incrustada se convierte a hora UTC y local. También obtiene la forma canónica, el orden de bytes que usa .NET Guid.ToByteArray(), Base64 y el mismo valor de 128 bits expresado como ULID (o como UUID si se trata de un ULID).\nCómo usarlo Elija un tipo, indique cuántos necesita y pulse Generar (o Ctrl+Enter). Copie o descargue la lista. Haga clic en cualquier línea generada para inspeccionarla.\nPrivacidad Los identificadores se generan en su navegador con crypto.getRandomValues. No se envía nada a ningún servidor. Sus ajustes de formato se guardan localmente.\n","permalink":"https://www.softinbit.com/es/tools/uuid/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eGenere de uno a 1.000 identificadores a la vez y péguelos directamente en su código:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUUID v4\u003c/strong\u003e: 122 bits aleatorios, el GUID clásico.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUUID v7\u003c/strong\u003e (RFC 9562): una marca de tiempo Unix de 48 bits en milisegundos seguida de bits aleatorios. Los valores v7 se ordenan por fecha de creación, lo que mantiene compactos los índices de la base de datos.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eULID\u003c/strong\u003e: 26 caracteres en Crockford Base32, también ordenable por tiempo y seguro para URL.\u003c/li\u003e\n\u003cli\u003eLos valores especiales \u003cstrong\u003eNil\u003c/strong\u003e y \u003cstrong\u003eMax\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDentro de un lote, los valores v7 y ULID son estrictamente crecientes aunque se generen muchos en el mismo milisegundo (se conserva la marca de tiempo y se incrementa la parte aleatoria, como describe RFC 9562 para la generación monótona).\u003c/p\u003e","title":"Generador de UUID / GUID / ULID"},{"content":"Qué hace Pegue una cadena de conexión y la herramienta averigua a qué proveedor pertenece, la divide en campos, explica cada palabra clave y señala los ajustes que causan problemas. También puede elegir un proveedor y crear una cadena de conexión desde cero en el formulario.\nCompatibles: SQL Server (Microsoft.Data.SqlClient), PostgreSQL (Npgsql), MySQL / MariaDB (MySqlConnector), SQLite (Microsoft.Data.Sqlite), Redis (cadenas de configuración de StackExchange.Redis), RabbitMQ (URI amqp:// / amqps://) y MongoDB (mongodb:// y mongodb+srv://).\nFunciones destacadas Sinónimos resueltos: Server, Address y Data Source son la misma palabra clave, igual que Database e Initial Catalog. Las palabras clave desconocidas se señalan con una sugerencia del tipo «¿quería decir…?». Reglas de comillas de ADO.NET: los valores que contienen ; o comillas se entrecomillan como espera DbConnectionStringBuilder, y los errores de análisis indican línea y columna. Revisión: TrustServerCertificate=true contra un servidor remoto, Encrypt=false, la falta de Application Name, User ID junto a Integrated Security, el usuario guest de RabbitMQ en un host remoto, abortConnect con su valor predeterminado, una @ sin codificar en una contraseña de MongoDB y más. Conversión de URL: las URL postgresql://, mysql:// y redis:// (como las que ofrecen muchos proveedores en la nube) se convierten al formato de palabras clave que esperan los controladores de .NET. Salidas: cadena normalizada, fragmento de appsettings.json, variables de entorno (ConnectionStrings__Name) y código C# con SqlConnectionStringBuilder, NpgsqlConnectionStringBuilder, ConfigurationOptions, ConnectionFactory o MongoClientSettings. Cómo usarla Pegue la cadena (o pulse Ejemplo), lea las advertencias y edite los campos en Editar y generar; la entrada se actualiza mientras escribe. Elija una pestaña de salida y cópiela o descárguela. Marque Sustituir la contraseña por un marcador antes de compartir la salida.\nPrivacidad Todo se ejecuta en su navegador. Las contraseñas se ocultan en pantalla hasta que pulse Mostrar contraseñas, y la cadena de conexión que pega nunca se guarda en el almacenamiento local ni se envía a ningún sitio.\n","permalink":"https://www.softinbit.com/es/tools/connection-string/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue una cadena de conexión y la herramienta averigua a qué proveedor pertenece, la divide en campos, explica cada palabra clave y señala los ajustes que causan problemas. También puede elegir un proveedor y crear una cadena de conexión desde cero en el formulario.\u003c/p\u003e\n\u003cp\u003eCompatibles: \u003cstrong\u003eSQL Server\u003c/strong\u003e (Microsoft.Data.SqlClient), \u003cstrong\u003ePostgreSQL\u003c/strong\u003e (Npgsql), \u003cstrong\u003eMySQL / MariaDB\u003c/strong\u003e (MySqlConnector), \u003cstrong\u003eSQLite\u003c/strong\u003e (Microsoft.Data.Sqlite), \u003cstrong\u003eRedis\u003c/strong\u003e (cadenas de configuración de StackExchange.Redis), \u003cstrong\u003eRabbitMQ\u003c/strong\u003e (URI \u003ccode\u003eamqp://\u003c/code\u003e / \u003ccode\u003eamqps://\u003c/code\u003e) y \u003cstrong\u003eMongoDB\u003c/strong\u003e (\u003ccode\u003emongodb://\u003c/code\u003e y \u003ccode\u003emongodb+srv://\u003c/code\u003e).\u003c/p\u003e","title":"Generador y analizador de cadenas de conexión"},{"content":"Qué hace Incrustar imágenes pequeñas como URI data: ahorra una petición HTTP en iconos, plantillas de correo y HTML de un solo archivo. Esta herramienta convierte en ambas direcciones.\nImagen → Base64\nSuelte una imagen, haga clic para elegir una o pegue una captura de pantalla directamente desde el portapapeles con Ctrl+V. Verá una vista previa con el tipo, las dimensiones en píxeles, el tamaño original y el tamaño en Base64, para saber exactamente cuánto añade la codificación (alrededor de un tercio). Copie el resultado como data URI, Base64 en bruto, una regla CSS background-image, una etiqueta HTML \u0026lt;img\u0026gt; con width y height ya rellenados, o Markdown. El tipo se detecta a partir de los bytes del archivo, así que un PNG guardado como .jpg recibe igualmente el tipo MIME correcto. Base64 → Imagen\nPegue una data URI o Base64 en bruto (se admiten saltos de línea, relleno ausente y el alfabeto apto para URL). El formato se detecta por sus bytes mágicos (PNG, JPEG, GIF, WebP, AVIF, SVG, ICO, BMP, TIFF\u0026hellip;), se muestra en una vista previa y se descarga con la extensión correcta. Se avisa si el tipo declarado no coincide con el real. Cómo usarlo Elija una dirección y después suelte o pegue. Todo se actualiza al instante; Copiar (o Ctrl+Enter) copia el formato seleccionado al portapapeles.\nPrivacidad Las imágenes se leen y codifican localmente en su navegador y nunca se suben. La última imagen que codificó (si es razonablemente pequeña) y el último Base64 que pegó se guardan en el almacenamiento local del navegador; Borrar los elimina.\n","permalink":"https://www.softinbit.com/es/tools/base64-image/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eIncrustar imágenes pequeñas como URI \u003ccode\u003edata:\u003c/code\u003e ahorra una petición HTTP en iconos, plantillas de correo y HTML de un solo archivo. Esta herramienta convierte en ambas direcciones.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eImagen → Base64\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSuelte una imagen, haga clic para elegir una o pegue una captura de pantalla directamente desde el portapapeles con \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eV\u003c/kbd\u003e.\u003c/li\u003e\n\u003cli\u003eVerá una vista previa con el tipo, las dimensiones en píxeles, el tamaño original y el tamaño en Base64, para saber exactamente cuánto añade la codificación (alrededor de un tercio).\u003c/li\u003e\n\u003cli\u003eCopie el resultado como \u003cstrong\u003edata URI\u003c/strong\u003e, \u003cstrong\u003eBase64 en bruto\u003c/strong\u003e, una regla CSS \u003cstrong\u003e\u003ccode\u003ebackground-image\u003c/code\u003e\u003c/strong\u003e, una etiqueta HTML \u003cstrong\u003e\u003ccode\u003e\u0026lt;img\u0026gt;\u003c/code\u003e\u003c/strong\u003e con \u003ccode\u003ewidth\u003c/code\u003e y \u003ccode\u003eheight\u003c/code\u003e ya rellenados, o \u003cstrong\u003eMarkdown\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eEl tipo se detecta a partir de los bytes del archivo, así que un PNG guardado como \u003ccode\u003e.jpg\u003c/code\u003e recibe igualmente el tipo MIME correcto.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBase64 → Imagen\u003c/strong\u003e\u003c/p\u003e","title":"Imagen a Base64"},{"content":"Qué hace Pegue una cadena que se comporta mal (una contraseña que «es correcta», un comando que falla, dos nombres que parecen iguales pero no lo son) y cada carácter se revisa mientras escribe.\nEl panel de problemas enumera lo encontrado, con línea y columna: caracteres de ancho cero (ZWSP, ZWNJ, ZWJ, word joiner), un BOM, espacios de no separación y otros espacios raros, controles bidireccionales, incluidos los no cerrados (el patrón Trojan Source), guiones suaves, caracteres de control, caracteres de etiqueta invisibles con el texto oculto decodificado, letras cirílicas y griegas confundibles, formas de ancho completo, puntuación tipográfica, dígitos no ASCII, marcas combinables apiladas, diferencias de NFC, finales de línea mixtos y mojibake como Ã© o Ä±. La vista visible muestra el texto con cada carácter invisible como una etiqueta y los caracteres confundibles subrayados. Haga clic en uno para seleccionarlo en el editor. La tabla de caracteres da para cada punto de código el valor U+, el nombre, la categoría general, la escritura, los bytes UTF-8, las unidades UTF-16 y el escape de C#. Puede exportarla como CSV. Recuentos de puntos de código, grafemas, unidades UTF-16 (lo que devuelve string.Length) y bytes UTF-8. Corríjalo Con un clic puede quitar caracteres invisibles, convertir los espacios raros en espacios normales, normalizar a NFC, reemplazar caracteres confundibles o puntuación tipográfica por ASCII, reparar mojibake o unificar los finales de línea. Cada corrección se puede deshacer. El texto ruso, griego o turco auténtico no se toca: los caracteres confundibles solo se señalan dentro de palabras latinas o de palabras que las imitan. Las notas sobre mayúsculas explican la i turca con y sin punto (İ, ı) y por qué los identificadores de .NET necesitan ToUpperInvariant y comparaciones ordinales.\nPrivacidad Su texto nunca sale del navegador. Se guarda en el almacenamiento local para que no se pierda al recargar; use Borrar para eliminarlo.\n","permalink":"https://www.softinbit.com/es/tools/unicode-inspector/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue una cadena que se comporta mal (una contraseña que «es correcta», un comando que falla, dos nombres que parecen iguales pero no lo son) y cada carácter se revisa mientras escribe.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEl \u003cstrong\u003epanel de problemas\u003c/strong\u003e enumera lo encontrado, con línea y columna: caracteres de ancho cero (ZWSP, ZWNJ, ZWJ, word joiner), un BOM, espacios de no separación y otros espacios raros, controles bidireccionales, incluidos los no cerrados (el patrón \u003cem\u003eTrojan Source\u003c/em\u003e), guiones suaves, caracteres de control, caracteres de etiqueta invisibles con el texto oculto decodificado, letras cirílicas y griegas confundibles, formas de ancho completo, puntuación tipográfica, dígitos no ASCII, marcas combinables apiladas, diferencias de NFC, finales de línea mixtos y mojibake como \u003ccode\u003eÃ©\u003c/code\u003e o \u003ccode\u003eÄ±\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eLa \u003cstrong\u003evista visible\u003c/strong\u003e muestra el texto con cada carácter invisible como una etiqueta y los caracteres confundibles subrayados. Haga clic en uno para seleccionarlo en el editor.\u003c/li\u003e\n\u003cli\u003eLa \u003cstrong\u003etabla de caracteres\u003c/strong\u003e da para cada punto de código el valor \u003ccode\u003eU+\u003c/code\u003e, el nombre, la categoría general, la escritura, los bytes UTF-8, las unidades UTF-16 y el escape de C#. Puede exportarla como CSV.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRecuentos\u003c/strong\u003e de puntos de código, grafemas, unidades UTF-16 (lo que devuelve \u003ccode\u003estring.Length\u003c/code\u003e) y bytes UTF-8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"corríjalo\"\u003eCorríjalo\u003c/h2\u003e\n\u003cp\u003eCon un clic puede quitar caracteres invisibles, convertir los espacios raros en espacios normales, normalizar a NFC, reemplazar caracteres confundibles o puntuación tipográfica por ASCII, reparar mojibake o unificar los finales de línea. Cada corrección se puede deshacer. El texto ruso, griego o turco auténtico no se toca: los caracteres confundibles solo se señalan dentro de palabras latinas o de palabras que las imitan. Las notas sobre mayúsculas explican la i turca con y sin punto (\u003ccode\u003eİ\u003c/code\u003e, \u003ccode\u003eı\u003c/code\u003e) y por qué los identificadores de .NET necesitan \u003ccode\u003eToUpperInvariant\u003c/code\u003e y comparaciones ordinales.\u003c/p\u003e","title":"Inspector de Unicode y caracteres invisibles"},{"content":"Qué hace Pegue un documento JSON (una respuesta de API, un archivo de configuración, la carga de un webhook) y obtenga tipos de C# que puede pegar directamente en un proyecto .NET. La salida se actualiza mientras escribe.\nPor qué es mejor que «Paste JSON as Classes» Examina todos los elementos del array, no solo el primero. Una propiedad que falta en algunos elementos, o que es null en algunos, pasa a ser anulable (int?, string?), y un número que es 1 en un elemento y 2.5 en otro pasa a ser double. Inferencia de tipos real: int, o long cuando un valor no cabe; double o decimal para fracciones; bool; Guid; DateTimeOffset para marcas de tiempo con desfase o Z, DateTime sin él, DateOnly para fechas simples. Los valores mixtos se convierten en JsonElement. Las estructuras idénticas se generan una sola vez. shippingAddress y billingAddress con las mismas propiedades comparten un único tipo Address. Los objetos indexados por ID ({\u0026quot;1\u0026quot;: {...}, \u0026quot;2\u0026quot;: {...}}) se convierten en Dictionary\u0026lt;string, T\u0026gt;. Identificadores siempre válidos: user_id se convierte en UserId, los nombres que empiezan por un dígito reciben el prefijo _, las palabras clave de C# se escapan con @ y los conflictos con el nombre de la clase u otras propiedades se renombran. Atributos de System.Text.Json solo donde hacen falta. «Valores predeterminados web» supone ASP.NET Core / JsonSerializerOptions.Web (camelCase); «difiere exactamente» cubre también el JsonSerializer predeterminado, que distingue mayúsculas de minúsculas. C# moderno: records con init o clases con set, tipos de referencia anulables con inicializadores seguros, miembros required opcionales y espacio de nombres con ámbito de archivo. Cómo usarlo Pegue JSON o suelte un archivo .json, indique el nombre del tipo raíz y el espacio de nombres, y copie o descargue el archivo .cs. La línea de estado muestra la llamada JsonSerializer.Deserialize\u0026lt;T\u0026gt; que debe usar.\nPrivacidad La conversión se ejecuta por completo en su navegador. Su JSON nunca se sube; la última entrada se guarda en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/json-to-csharp/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un documento JSON (una respuesta de API, un archivo de configuración, la carga de un webhook) y obtenga tipos de C# que puede pegar directamente en un proyecto .NET. La salida se actualiza mientras escribe.\u003c/p\u003e\n\u003ch2 id=\"por-qué-es-mejor-que-paste-json-as-classes\"\u003ePor qué es mejor que «Paste JSON as Classes»\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eExamina todos los elementos del array\u003c/strong\u003e, no solo el primero. Una propiedad que falta en algunos elementos, o que es \u003ccode\u003enull\u003c/code\u003e en algunos, pasa a ser anulable (\u003ccode\u003eint?\u003c/code\u003e, \u003ccode\u003estring?\u003c/code\u003e), y un número que es \u003ccode\u003e1\u003c/code\u003e en un elemento y \u003ccode\u003e2.5\u003c/code\u003e en otro pasa a ser \u003ccode\u003edouble\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eInferencia de tipos real\u003c/strong\u003e: \u003ccode\u003eint\u003c/code\u003e, o \u003ccode\u003elong\u003c/code\u003e cuando un valor no cabe; \u003ccode\u003edouble\u003c/code\u003e o \u003ccode\u003edecimal\u003c/code\u003e para fracciones; \u003ccode\u003ebool\u003c/code\u003e; \u003ccode\u003eGuid\u003c/code\u003e; \u003ccode\u003eDateTimeOffset\u003c/code\u003e para marcas de tiempo con desfase o \u003ccode\u003eZ\u003c/code\u003e, \u003ccode\u003eDateTime\u003c/code\u003e sin él, \u003ccode\u003eDateOnly\u003c/code\u003e para fechas simples. Los valores mixtos se convierten en \u003ccode\u003eJsonElement\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLas estructuras idénticas se generan una sola vez.\u003c/strong\u003e \u003ccode\u003eshippingAddress\u003c/code\u003e y \u003ccode\u003ebillingAddress\u003c/code\u003e con las mismas propiedades comparten un único tipo \u003ccode\u003eAddress\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLos objetos indexados por ID\u003c/strong\u003e (\u003ccode\u003e{\u0026quot;1\u0026quot;: {...}, \u0026quot;2\u0026quot;: {...}}\u003c/code\u003e) se convierten en \u003ccode\u003eDictionary\u0026lt;string, T\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIdentificadores siempre válidos\u003c/strong\u003e: \u003ccode\u003euser_id\u003c/code\u003e se convierte en \u003ccode\u003eUserId\u003c/code\u003e, los nombres que empiezan por un dígito reciben el prefijo \u003ccode\u003e_\u003c/code\u003e, las palabras clave de C# se escapan con \u003ccode\u003e@\u003c/code\u003e y los conflictos con el nombre de la clase u otras propiedades se renombran.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAtributos de System.Text.Json\u003c/strong\u003e solo donde hacen falta. «Valores predeterminados web» supone ASP.NET Core / \u003ccode\u003eJsonSerializerOptions.Web\u003c/code\u003e (camelCase); «difiere exactamente» cubre también el \u003ccode\u003eJsonSerializer\u003c/code\u003e predeterminado, que distingue mayúsculas de minúsculas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eC# moderno\u003c/strong\u003e: records con \u003ccode\u003einit\u003c/code\u003e o clases con \u003ccode\u003eset\u003c/code\u003e, tipos de referencia anulables con inicializadores seguros, miembros \u003ccode\u003erequired\u003c/code\u003e opcionales y espacio de nombres con ámbito de archivo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003ePegue JSON o suelte un archivo \u003ccode\u003e.json\u003c/code\u003e, indique el nombre del tipo raíz y el espacio de nombres, y copie o descargue el archivo \u003ccode\u003e.cs\u003c/code\u003e. La línea de estado muestra la llamada \u003ccode\u003eJsonSerializer.Deserialize\u0026lt;T\u0026gt;\u003c/code\u003e que debe usar.\u003c/p\u003e","title":"JSON a clases de C#"},{"content":"Qué hace Pegue una muestra de JSON, como una respuesta de API de su backend ASP.NET Core o el contenido de un webhook, y obtenga declaraciones de TypeScript que puede añadir directamente a un proyecto frontend. La salida se actualiza mientras escribe, y una segunda pestaña muestra el mismo modelo como esquema Zod para la validación en tiempo de ejecución.\nCómo deduce los tipos Se examinan todos los elementos del array, no solo el primero. Una clave que falta en algunos elementos pasa a ser opcional (name?: string). Una clave que a veces es null pasa a ser string | null. Los arrays mixtos se convierten en uniones, p. ej. (string | number)[]. Un array vacío se convierte en unknown[]. Las estructuras idénticas se declaran una sola vez. shippingAddress y billingAddress con las mismas propiedades comparten una única interface Address. Los objetos con ID como claves ({\u0026quot;101\u0026quot;: {...}, \u0026quot;102\u0026quot;: {...}}) se convierten en Record\u0026lt;string, T\u0026gt;. Salida siempre válida: los nombres de propiedad que no son identificadores (\u0026quot;first-name\u0026quot;, \u0026quot;2fa\u0026quot;) se ponen entre comillas. Los nombres de tipo van en PascalCase y en singular para los elementos de arrays. Los nombres que ocultarían tipos integrados como Date o Error reciben un sufijo. Las cadenas de fecha ISO se mantienen como string de forma predeterminada, con un comentario que indica si son una fecha o una fecha y hora. También puede tiparlas como Date si las convierte después de analizarlas. El esquema Zod las comprueba con .datetime() o .date() (Zod 3.23 o posterior). Opciones Elija interface o type, active o desactive export y readonly, elija T[] o Array\u0026lt;T\u0026gt; y defina el nombre del tipo raíz. Un array en la raíz genera un tipo de elemento y un alias ...List.\nCómo usarlo Pegue JSON o suelte un archivo .json y, a continuación, copie o descargue la salida TypeScript o Zod.\nPrivacidad La conversión se ejecuta por completo en su navegador. Su JSON nunca se sube; la última entrada se guarda en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/json-to-typescript/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue una muestra de JSON, como una respuesta de API de su backend ASP.NET Core o el contenido de un webhook, y obtenga declaraciones de TypeScript que puede añadir directamente a un proyecto frontend. La salida se actualiza mientras escribe, y una segunda pestaña muestra el mismo modelo como esquema \u003ca href=\"https://zod.dev\"\u003eZod\u003c/a\u003e para la validación en tiempo de ejecución.\u003c/p\u003e\n\u003ch2 id=\"cómo-deduce-los-tipos\"\u003eCómo deduce los tipos\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSe examinan todos los elementos del array\u003c/strong\u003e, no solo el primero. Una clave que falta en algunos elementos pasa a ser opcional (\u003ccode\u003ename?: string\u003c/code\u003e). Una clave que a veces es \u003ccode\u003enull\u003c/code\u003e pasa a ser \u003ccode\u003estring | null\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLos arrays mixtos se convierten en uniones\u003c/strong\u003e, p. ej. \u003ccode\u003e(string | number)[]\u003c/code\u003e. Un array vacío se convierte en \u003ccode\u003eunknown[]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLas estructuras idénticas se declaran una sola vez.\u003c/strong\u003e \u003ccode\u003eshippingAddress\u003c/code\u003e y \u003ccode\u003ebillingAddress\u003c/code\u003e con las mismas propiedades comparten una única interface \u003ccode\u003eAddress\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLos objetos con ID como claves\u003c/strong\u003e (\u003ccode\u003e{\u0026quot;101\u0026quot;: {...}, \u0026quot;102\u0026quot;: {...}}\u003c/code\u003e) se convierten en \u003ccode\u003eRecord\u0026lt;string, T\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSalida siempre válida\u003c/strong\u003e: los nombres de propiedad que no son identificadores (\u003ccode\u003e\u0026quot;first-name\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;2fa\u0026quot;\u003c/code\u003e) se ponen entre comillas. Los nombres de tipo van en PascalCase y en singular para los elementos de arrays. Los nombres que ocultarían tipos integrados como \u003ccode\u003eDate\u003c/code\u003e o \u003ccode\u003eError\u003c/code\u003e reciben un sufijo.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLas cadenas de fecha ISO\u003c/strong\u003e se mantienen como \u003ccode\u003estring\u003c/code\u003e de forma predeterminada, con un comentario que indica si son una fecha o una fecha y hora. También puede tiparlas como \u003ccode\u003eDate\u003c/code\u003e si las convierte después de analizarlas. El esquema Zod las comprueba con \u003ccode\u003e.datetime()\u003c/code\u003e o \u003ccode\u003e.date()\u003c/code\u003e (Zod 3.23 o posterior).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"opciones\"\u003eOpciones\u003c/h2\u003e\n\u003cp\u003eElija \u003ccode\u003einterface\u003c/code\u003e o \u003ccode\u003etype\u003c/code\u003e, active o desactive \u003ccode\u003eexport\u003c/code\u003e y \u003ccode\u003ereadonly\u003c/code\u003e, elija \u003ccode\u003eT[]\u003c/code\u003e o \u003ccode\u003eArray\u0026lt;T\u0026gt;\u003c/code\u003e y defina el nombre del tipo raíz. Un array en la raíz genera un tipo de elemento y un alias \u003ccode\u003e...List\u003c/code\u003e.\u003c/p\u003e","title":"JSON a TypeScript"},{"content":"Qué hace Pegue la salida de exception.ToString() y la herramienta la divide en una tarjeta por excepción: la excepción externa, cada excepción interna ---\u0026gt; y cada entrada de una AggregateException. La excepción más interna se marca como causa raíz y el primer marco que pertenece a su código, como origen probable.\nFunciones Código async simplificado: \u0026lt;GetOrderAsync\u0026gt;d__5.MoveNext() pasa a ser async OrderService.GetOrderAsync(), \u0026lt;\u0026gt;c__DisplayClass0_0.\u0026lt;Main\u0026gt;b__0 se convierte en una lambda con nombre y las funciones locales reciben su nombre real. Se ocultan los marcos de TaskAwaiter, ExecutionContext y ExceptionDispatchInfo, así como los marcadores --- End of stack trace from previous location ---. Pase el ratón sobre un marco para ver el texto original. Solo mi código: las secuencias de marcos del framework se pliegan en grupos desplegables «n marcos del framework». La lista de prefijos (System., Microsoft., Npgsql.…) se puede editar. Acepta entradas desordenadas: salida de Serilog y Microsoft.Extensions.Logging, líneas de log CLEF / JSON (@x), JSON de excepciones de Application Insights, trazas con \\r\\n escapado, texto de la developer exception page de ASP.NET Core y los formatos de .NET Framework y Mono. Archivo y línea de cada marco. Haga clic para copiar path:line. Exporte la traza limpia como texto o como Markdown listo para una incidencia de GitHub o Azure DevOps. Cómo usarlo Pegue la excepción, o abra o arrastre un archivo de log. Lea primero el marco de origen resaltado y expanda los marcos del framework solo si los necesita. Copie el texto limpio o el Markdown en su ticket. Privacidad El análisis se realiza en su navegador y no se sube nada. Su última entrada y la lista de prefijos se guardan en el almacenamiento local; Borrar elimina la entrada.\n","permalink":"https://www.softinbit.com/es/tools/stack-trace/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue la salida de \u003ccode\u003eexception.ToString()\u003c/code\u003e y la herramienta la divide en una tarjeta por excepción: la excepción externa, cada excepción interna \u003ccode\u003e---\u0026gt;\u003c/code\u003e y cada entrada de una \u003ccode\u003eAggregateException\u003c/code\u003e. La excepción más interna se marca como \u003cstrong\u003ecausa raíz\u003c/strong\u003e y el primer marco que pertenece a su código, como \u003cstrong\u003eorigen probable\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCódigo async simplificado\u003c/strong\u003e: \u003ccode\u003e\u0026lt;GetOrderAsync\u0026gt;d__5.MoveNext()\u003c/code\u003e pasa a ser \u003ccode\u003easync OrderService.GetOrderAsync()\u003c/code\u003e, \u003ccode\u003e\u0026lt;\u0026gt;c__DisplayClass0_0.\u0026lt;Main\u0026gt;b__0\u003c/code\u003e se convierte en una lambda con nombre y las funciones locales reciben su nombre real. Se ocultan los marcos de \u003ccode\u003eTaskAwaiter\u003c/code\u003e, \u003ccode\u003eExecutionContext\u003c/code\u003e y \u003ccode\u003eExceptionDispatchInfo\u003c/code\u003e, así como los marcadores \u003ccode\u003e--- End of stack trace from previous location ---\u003c/code\u003e. Pase el ratón sobre un marco para ver el texto original.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSolo mi código\u003c/strong\u003e: las secuencias de marcos del framework se pliegan en grupos desplegables «n marcos del framework». La lista de prefijos (\u003ccode\u003eSystem.\u003c/code\u003e, \u003ccode\u003eMicrosoft.\u003c/code\u003e, \u003ccode\u003eNpgsql.\u003c/code\u003e…) se puede editar.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAcepta entradas desordenadas\u003c/strong\u003e: salida de Serilog y Microsoft.Extensions.Logging, líneas de log CLEF / JSON (\u003ccode\u003e@x\u003c/code\u003e), JSON de excepciones de Application Insights, trazas con \u003ccode\u003e\\r\\n\u003c/code\u003e escapado, texto de la developer exception page de ASP.NET Core y los formatos de .NET Framework y Mono.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eArchivo y línea\u003c/strong\u003e de cada marco. Haga clic para copiar \u003ccode\u003epath:line\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExporte\u003c/strong\u003e la traza limpia como texto o como Markdown listo para una incidencia de GitHub o Azure DevOps.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003ePegue la excepción, o abra o arrastre un archivo de log.\u003c/li\u003e\n\u003cli\u003eLea primero el marco de origen resaltado y expanda los marcos del framework solo si los necesita.\u003c/li\u003e\n\u003cli\u003eCopie el texto limpio o el Markdown en su ticket.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"privacidad\"\u003ePrivacidad\u003c/h2\u003e\n\u003cp\u003eEl análisis se realiza en su navegador y no se sube nada. Su última entrada y la lista de prefijos se guardan en el almacenamiento local; \u003cstrong\u003eBorrar\u003c/strong\u003e elimina la entrada.\u003c/p\u003e","title":"Limpiador de trazas de pila .NET"},{"content":"Qué hace Pegue un JSON, escriba una expresión JSONPath y las coincidencias se actualizan mientras escribe. Los resultados se muestran como JSON formateado, y cada coincidencia aparece con su ruta normalizada ($['orders'][0]['id']) y su JSON Pointer (/orders/0/id), para que pueda copiar la ubicación exacta en su código, en un JSON Patch o en una aserción de prueba.\nCambie la salida entre valores, rutas, pointers o pares ruta/valor, y luego cópiela o descárguela. Haga clic en cualquier ejemplo de la chuleta para probar comodines, el descenso recursivo (..), filtros (?(@.price \u0026lt; 10)), slices ([-1:]), uniones y nombres de propiedad (~). El JSON no válido se indica con la línea, la columna y una marca en el carácter exacto, de modo que una coma que falta se encuentra en segundos. Abra o arrastre un archivo .json en lugar de pegarlo. Cómo usarlo Pegue su JSON a la izquierda (o pulse Ejemplo). Escriba una consulta que empiece por $, por ejemplo $.orders[?(@.total \u0026gt; 40)].id. Haga clic en la ruta de un resultado para copiarla. Las consultas se evalúan con JSONPath-Plus, usando su evaluador seguro de expresiones para los filtros: @ es el elemento actual, y funcionan las comparaciones, \u0026amp;\u0026amp;, || y llamadas a métodos sencillas como @.tags.includes('x'). Otras implementaciones de JSONPath (por ejemplo, RFC 9535 o SelectTokens de Newtonsoft) pueden diferir en la sintaxis de los filtros.\nPrivacidad Su JSON se procesa en su navegador y solo se guarda en el almacenamiento local. No se sube nada.\n","permalink":"https://www.softinbit.com/es/tools/jsonpath-tester/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un JSON, escriba una expresión JSONPath y las coincidencias se actualizan mientras escribe. Los resultados se muestran como JSON formateado, y cada coincidencia aparece con su \u003cstrong\u003eruta normalizada\u003c/strong\u003e (\u003ccode\u003e$['orders'][0]['id']\u003c/code\u003e) y su \u003cstrong\u003eJSON Pointer\u003c/strong\u003e (\u003ccode\u003e/orders/0/id\u003c/code\u003e), para que pueda copiar la ubicación exacta en su código, en un JSON Patch o en una aserción de prueba.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCambie la salida entre valores, rutas, pointers o pares ruta/valor, y luego cópiela o descárguela.\u003c/li\u003e\n\u003cli\u003eHaga clic en cualquier ejemplo de la chuleta para probar comodines, el descenso recursivo (\u003ccode\u003e..\u003c/code\u003e), filtros (\u003ccode\u003e?(@.price \u0026lt; 10)\u003c/code\u003e), slices (\u003ccode\u003e[-1:]\u003c/code\u003e), uniones y nombres de propiedad (\u003ccode\u003e~\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEl JSON no válido se indica con la línea, la columna y una marca en el carácter exacto, de modo que una coma que falta se encuentra en segundos.\u003c/li\u003e\n\u003cli\u003eAbra o arrastre un archivo \u003ccode\u003e.json\u003c/code\u003e en lugar de pegarlo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003ePegue su JSON a la izquierda (o pulse \u003cstrong\u003eEjemplo\u003c/strong\u003e).\u003c/li\u003e\n\u003cli\u003eEscriba una consulta que empiece por \u003ccode\u003e$\u003c/code\u003e, por ejemplo \u003ccode\u003e$.orders[?(@.total \u0026gt; 40)].id\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eHaga clic en la ruta de un resultado para copiarla.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eLas consultas se evalúan con \u003ca href=\"https://github.com/JSONPath-Plus/JSONPath\"\u003eJSONPath-Plus\u003c/a\u003e, usando su evaluador seguro de expresiones para los filtros: \u003ccode\u003e@\u003c/code\u003e es el elemento actual, y funcionan las comparaciones, \u003ccode\u003e\u0026amp;\u0026amp;\u003c/code\u003e, \u003ccode\u003e||\u003c/code\u003e y llamadas a métodos sencillas como \u003ccode\u003e@.tags.includes('x')\u003c/code\u003e. Otras implementaciones de JSONPath (por ejemplo, RFC 9535 o \u003ccode\u003eSelectTokens\u003c/code\u003e de Newtonsoft) pueden diferir en la sintaxis de los filtros.\u003c/p\u003e","title":"Probador de JSONPath"},{"content":"Qué hace Escriba un patrón y cada coincidencia se resalta en el texto de prueba mientras escribe. La pestaña Coincidencias muestra cada coincidencia con su índice, sus grupos de captura numerados y sus grupos con nombre (con sus posiciones). Reemplazar muestra una vista previa de las sustituciones con $1, $\u0026lt;name\u0026gt; y $\u0026amp;, y Código le ofrece fragmentos de JavaScript y C# listos para pegar.\nActive o desactive los flags g i m s u y, además de d y v si su navegador los admite. Haga clic en un patrón de la biblioteca (correo electrónico, URL, GUID, IPv4, fecha ISO, semver, color hex\u0026hellip;) para partir de una regex probada. Los errores de sintaxis muestran el mensaje del motor y, cuando se puede localizar, la posición en el patrón. La búsqueda se ejecuta en un Web Worker con un límite de tiempo, de modo que un patrón como (a+)+$ se detiene con un mensaje claro en lugar de bloquear la pestaña. Regex de JavaScript frente a .NET Los flags se corresponden con RegexOptions: i = IgnoreCase, m = Multiline, s = Singleline. En .NET no existe g: llame a Matches() en lugar de Match(). y, u y v no tienen una opción directa. Los grupos con nombre usan (?\u0026lt;name\u0026gt;...) en ambos; .NET también acepta (?'name'...). En los reemplazos, JavaScript escribe $\u0026lt;name\u0026gt; y .NET ${name}. El lookbehind (?\u0026lt;=...) / (?\u0026lt;!...) funciona en ambos. Entre las funciones exclusivas de .NET están los grupos de equilibrio, los anclajes \\A / \\z, las opciones en línea (?x) y RightToLeft. En .NET, \\d coincide con cualquier dígito Unicode salvo que pase RegexOptions.ECMAScript; en JavaScript siempre equivale a [0-9]. Privacidad Su patrón y su texto permanecen en su navegador y solo se guardan en el almacenamiento local para que una recarga no le haga perder el trabajo.\n","permalink":"https://www.softinbit.com/es/tools/regex-tester/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eEscriba un patrón y cada coincidencia se resalta en el texto de prueba mientras escribe. La pestaña \u003cstrong\u003eCoincidencias\u003c/strong\u003e muestra cada coincidencia con su índice, sus grupos de captura numerados y sus grupos con nombre (con sus posiciones). \u003cstrong\u003eReemplazar\u003c/strong\u003e muestra una vista previa de las sustituciones con \u003ccode\u003e$1\u003c/code\u003e, \u003ccode\u003e$\u0026lt;name\u0026gt;\u003c/code\u003e y \u003ccode\u003e$\u0026amp;\u003c/code\u003e, y \u003cstrong\u003eCódigo\u003c/strong\u003e le ofrece fragmentos de JavaScript y C# listos para pegar.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eActive o desactive los flags \u003ccode\u003eg i m s u y\u003c/code\u003e, además de \u003ccode\u003ed\u003c/code\u003e y \u003ccode\u003ev\u003c/code\u003e si su navegador los admite.\u003c/li\u003e\n\u003cli\u003eHaga clic en un patrón de la biblioteca (correo electrónico, URL, GUID, IPv4, fecha ISO, semver, color hex\u0026hellip;) para partir de una regex probada.\u003c/li\u003e\n\u003cli\u003eLos errores de sintaxis muestran el mensaje del motor y, cuando se puede localizar, la posición en el patrón.\u003c/li\u003e\n\u003cli\u003eLa búsqueda se ejecuta en un Web Worker con un límite de tiempo, de modo que un patrón como \u003ccode\u003e(a+)+$\u003c/code\u003e se detiene con un mensaje claro en lugar de bloquear la pestaña.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"regex-de-javascript-frente-a-net\"\u003eRegex de JavaScript frente a .NET\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLos flags se corresponden con \u003ccode\u003eRegexOptions\u003c/code\u003e\u003c/strong\u003e: \u003ccode\u003ei\u003c/code\u003e = \u003ccode\u003eIgnoreCase\u003c/code\u003e, \u003ccode\u003em\u003c/code\u003e = \u003ccode\u003eMultiline\u003c/code\u003e, \u003ccode\u003es\u003c/code\u003e = \u003ccode\u003eSingleline\u003c/code\u003e. En .NET no existe \u003ccode\u003eg\u003c/code\u003e: llame a \u003ccode\u003eMatches()\u003c/code\u003e en lugar de \u003ccode\u003eMatch()\u003c/code\u003e. \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003eu\u003c/code\u003e y \u003ccode\u003ev\u003c/code\u003e no tienen una opción directa.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLos grupos con nombre\u003c/strong\u003e usan \u003ccode\u003e(?\u0026lt;name\u0026gt;...)\u003c/code\u003e en ambos; .NET también acepta \u003ccode\u003e(?'name'...)\u003c/code\u003e. En los reemplazos, JavaScript escribe \u003ccode\u003e$\u0026lt;name\u0026gt;\u003c/code\u003e y .NET \u003ccode\u003e${name}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEl lookbehind\u003c/strong\u003e \u003ccode\u003e(?\u0026lt;=...)\u003c/code\u003e / \u003ccode\u003e(?\u0026lt;!...)\u003c/code\u003e funciona en ambos. Entre las funciones exclusivas de .NET están los grupos de equilibrio, los anclajes \u003ccode\u003e\\A\u003c/code\u003e / \u003ccode\u003e\\z\u003c/code\u003e, las opciones en línea \u003ccode\u003e(?x)\u003c/code\u003e y \u003ccode\u003eRightToLeft\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eEn .NET, \u003ccode\u003e\\d\u003c/code\u003e coincide con cualquier dígito Unicode salvo que pase \u003ccode\u003eRegexOptions.ECMAScript\u003c/code\u003e; en JavaScript siempre equivale a \u003ccode\u003e[0-9]\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"privacidad\"\u003ePrivacidad\u003c/h2\u003e\n\u003cp\u003eSu patrón y su texto permanecen en su navegador y solo se guardan en el almacenamiento local para que una recarga no le haga perder el trabajo.\u003c/p\u003e","title":"Probador de regex"},{"content":"Qué hace Pegue las versiones que ha publicado un paquete, escriba un rango y vea al instante qué versiones lo cumplen y cuál se instalaría.\nRangos de NuGet: versiones mínimas (1.0), intervalos ([1.0,2.0), (,1.0]), versiones exactas ([1.0]) y versiones flotantes (1.*, 1.0.*, 1.0.0-*, *-*). Cada rango se explica con una expresión matemática sencilla y se normaliza. Rangos de npm: comparadores, ^, ~, rangos x, rangos con guion y ||, desglosados exactamente como en node-semver (^1.2.3 pasa a ser \u0026gt;=1.2.3 \u0026lt;2.0.0-0), incluida la regla de prerelease de npm y la opción includePrerelease. Resolución: NuGet elige la versión aplicable más baja (los rangos flotantes eligen la coincidencia más alta) y npm la más alta. La herramienta marca la ganadora, explica por qué se descartaron las demás (por ejemplo, una prerelease dentro de un rango estable de NuGet) y señala advertencias de restauración como NU1603, NU1102 y NU1103. Conversión entre ambas sintaxis cuando un rango es un único intervalo. Ordenar, comparar e incrementar La mitad inferior ordena la lista según la precedencia de SemVer 2.0.0 (o las reglas de NuGet: versiones de cuatro partes, etiquetas sin distinguir mayúsculas), informa de las líneas no válidas con la columna exacta del error y marca las versiones que solo difieren en los metadatos de compilación. Inspeccione una versión para ver sus partes, compárela con otra junto con la regla de precedencia que decidió el resultado y obtenga con un clic la siguiente versión major, minor, patch o prerelease (reglas de npm semver inc).\nPrivacidad Todo se ejecuta en su navegador. La lista de versiones y sus últimas entradas solo se guardan en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/semver/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue las versiones que ha publicado un paquete, escriba un rango y vea al instante qué versiones lo cumplen y cuál se instalaría.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRangos de NuGet\u003c/strong\u003e: versiones mínimas (\u003ccode\u003e1.0\u003c/code\u003e), intervalos (\u003ccode\u003e[1.0,2.0)\u003c/code\u003e, \u003ccode\u003e(,1.0]\u003c/code\u003e), versiones exactas (\u003ccode\u003e[1.0]\u003c/code\u003e) y versiones flotantes (\u003ccode\u003e1.*\u003c/code\u003e, \u003ccode\u003e1.0.*\u003c/code\u003e, \u003ccode\u003e1.0.0-*\u003c/code\u003e, \u003ccode\u003e*-*\u003c/code\u003e). Cada rango se explica con una expresión matemática sencilla y se normaliza.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRangos de npm\u003c/strong\u003e: comparadores, \u003ccode\u003e^\u003c/code\u003e, \u003ccode\u003e~\u003c/code\u003e, rangos x, rangos con guion y \u003ccode\u003e||\u003c/code\u003e, desglosados exactamente como en node-semver (\u003ccode\u003e^1.2.3\u003c/code\u003e pasa a ser \u003ccode\u003e\u0026gt;=1.2.3 \u0026lt;2.0.0-0\u003c/code\u003e), incluida la regla de prerelease de npm y la opción \u003ccode\u003eincludePrerelease\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eResolución\u003c/strong\u003e: NuGet elige la versión aplicable \u003cem\u003emás baja\u003c/em\u003e (los rangos flotantes eligen la coincidencia más alta) y npm la \u003cem\u003emás alta\u003c/em\u003e. La herramienta marca la ganadora, explica por qué se descartaron las demás (por ejemplo, una prerelease dentro de un rango estable de NuGet) y señala advertencias de restauración como NU1603, NU1102 y NU1103.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConversión\u003c/strong\u003e entre ambas sintaxis cuando un rango es un único intervalo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ordenar-comparar-e-incrementar\"\u003eOrdenar, comparar e incrementar\u003c/h2\u003e\n\u003cp\u003eLa mitad inferior ordena la lista según la precedencia de SemVer 2.0.0 (o las reglas de NuGet: versiones de cuatro partes, etiquetas sin distinguir mayúsculas), informa de las líneas no válidas con la columna exacta del error y marca las versiones que solo difieren en los metadatos de compilación. Inspeccione una versión para ver sus partes, compárela con otra junto con la regla de precedencia que decidió el resultado y obtenga con un clic la siguiente versión major, minor, patch o prerelease (reglas de npm \u003ccode\u003esemver inc\u003c/code\u003e).\u003c/p\u003e","title":"Probador de SemVer y rangos de versiones NuGet"},{"content":"Qué hace Abra, suelte o pegue una imagen (también sirve una captura de pantalla del portapapeles) y véala a la vez con siete tipos de deficiencia de la visión del color:\nProtanopía / protanomalía: conos sensibles al rojo ausentes o débiles. Deuteranopía / deuteranomalía: conos sensibles al verde ausentes o débiles. Tritanopía / tritanomalía: conos sensibles al azul ausentes o débiles. Acromatopsia: sin visión del color, solo luminosidad. Elija un tipo para compararlo con el original mediante el control deslizante: arrastre sobre la imagen o use las teclas de flecha en el control. Descargue cualquier simulación como PNG a tamaño completo, o todas a la vez.\nCómo funciona La simulación usa las matrices de Machado, Oliveira y Fernandes (2009), A Physiologically-based Model for Simulation of Color Vision Deficiency: severidad 1,0 para los tipos -opía y 0,6 para los tipos -anomalía. Los píxeles se convierten de sRGB a RGB lineal antes de aplicar la matriz y se vuelven a convertir después, porque el modelo está definido sobre luz lineal; aplicarlo a valores con codificación gamma distorsiona el resultado. La acromatopsia usa los pesos de luminancia de Rec. 709.\nLas imágenes grandes se reducen para la vista previa en pantalla, de modo que la página siga siendo rápida; las descargas se procesan a la resolución original (hasta 40 megapíxeles).\nConsejos Compruebe que la información nunca se transmite solo con el color: las etiquetas de estado, las series de un gráfico y los estados de error deberían distinguirse también por forma, texto, patrón o luminosidad. El panel de ejemplo muestra cómo los pares rojo/verde se confunden para personas con protanopía o deuteranopía.\nPrivacidad Las imágenes se procesan en un canvas en su navegador y nunca se suben.\n","permalink":"https://www.softinbit.com/es/tools/color-blind-simulator/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eAbra, suelte o pegue una imagen (también sirve una captura de pantalla del portapapeles) y véala a la vez con siete tipos de deficiencia de la visión del color:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eProtanopía / protanomalía\u003c/strong\u003e: conos sensibles al rojo ausentes o débiles.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDeuteranopía / deuteranomalía\u003c/strong\u003e: conos sensibles al verde ausentes o débiles.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTritanopía / tritanomalía\u003c/strong\u003e: conos sensibles al azul ausentes o débiles.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAcromatopsia\u003c/strong\u003e: sin visión del color, solo luminosidad.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eElija un tipo para compararlo con el original mediante el \u003cstrong\u003econtrol deslizante\u003c/strong\u003e: arrastre sobre la imagen o use las teclas de flecha en el control. Descargue cualquier simulación como PNG a tamaño completo, o todas a la vez.\u003c/p\u003e","title":"Simulador de daltonismo"},{"content":"Qué hace Pegue un número y el tipo se detecta automáticamente: 11 dígitos es un TCKN, 10 dígitos es un VKN y dos letras seguidas de dígitos es un IBAN. Cada regla se muestra con el cálculo real, para que vea por qué falla un número y no solo que falla:\nTCKN: 11 dígitos, el primero distinto de 0, 10.º dígito = ((d1+d3+d5+d7+d9) × 7 − (d2+d4+d6+d8)) mod 10, 11.º dígito = suma de los diez primeros dígitos mod 10. VKN: 10 dígitos incluido el dígito de control del número fiscal. Una tabla paso a paso muestra la ponderación de cada dígito. IBAN: la longitud por país y el formato BBAN del SWIFT IBAN Registry (ISO 13616) para los 105 códigos de país, además de la suma de control ISO 7064 MOD 97-10. Obtiene los dígitos de control esperados y los campos de banco y sucursal. Los IBAN turcos se dividen en el código de banco de 5 dígitos, el dígito de reserva y el número de cuenta de 16 caracteres. No se consultan los nombres de los bancos. Modo masivo, generador y C# Masivo comprueba un valor por línea y exporta los resultados como CSV. Generar crea hasta 1000 valores sintéticos distintos de TCKN, VKN o IBAN, con una semilla opcional para fixtures reproducibles, como lista, JSON o array de C#. Código C# le ofrece los métodos IsValidTckn, IsValidVkn e IsValidIban con las mismas reglas que esta página, un validador de FluentValidation y pruebas xUnit.\nLos valores generados son solo datos de prueba. Superan las sumas de control, pero son aleatorios y no proceden de ninguna identidad ni cuenta real.\nPrivacidad Todo se ejecuta en su navegador y no se sube nada. Los números que comprueba no se guardan. Solo su configuración, como las opciones del generador, se conserva en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/tr-validators/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un número y el tipo se detecta automáticamente: 11 dígitos es un \u003cstrong\u003eTCKN\u003c/strong\u003e, 10 dígitos es un \u003cstrong\u003eVKN\u003c/strong\u003e y dos letras seguidas de dígitos es un \u003cstrong\u003eIBAN\u003c/strong\u003e. Cada regla se muestra con el cálculo real, para que vea \u003cem\u003epor qué\u003c/em\u003e falla un número y no solo que falla:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTCKN\u003c/strong\u003e: 11 dígitos, el primero distinto de 0, 10.º dígito = ((d1+d3+d5+d7+d9) × 7 − (d2+d4+d6+d8)) mod 10, 11.º dígito = suma de los diez primeros dígitos mod 10.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVKN\u003c/strong\u003e: 10 dígitos incluido el dígito de control del número fiscal. Una tabla paso a paso muestra la ponderación de cada dígito.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIBAN\u003c/strong\u003e: la longitud por país y el formato BBAN del SWIFT IBAN Registry (ISO 13616) para los 105 códigos de país, además de la suma de control ISO 7064 MOD 97-10. Obtiene los dígitos de control esperados y los campos de banco y sucursal. Los IBAN turcos se dividen en el código de banco de 5 dígitos, el dígito de reserva y el número de cuenta de 16 caracteres. No se consultan los nombres de los bancos.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"modo-masivo-generador-y-c\"\u003eModo masivo, generador y C#\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eMasivo\u003c/strong\u003e comprueba un valor por línea y exporta los resultados como CSV. \u003cstrong\u003eGenerar\u003c/strong\u003e crea hasta 1000 valores sintéticos distintos de TCKN, VKN o IBAN, con una semilla opcional para fixtures reproducibles, como lista, JSON o array de C#. \u003cstrong\u003eCódigo C#\u003c/strong\u003e le ofrece los métodos \u003ccode\u003eIsValidTckn\u003c/code\u003e, \u003ccode\u003eIsValidVkn\u003c/code\u003e e \u003ccode\u003eIsValidIban\u003c/code\u003e con las mismas reglas que esta página, un validador de FluentValidation y pruebas xUnit.\u003c/p\u003e","title":"Validador de TCKN, VKN e IBAN / Generador de datos de prueba"},{"content":"Qué hace Pegue un documento XML y su esquema XSD y compruebe si el documento se ajusta a él. La validación usa libxml2, la misma biblioteca que hay detrás de la herramienta de línea de comandos xmllint, compilada a WebAssembly y ejecutada en un worker en segundo plano de su navegador.\nFunciones Cada error, con su línea: tipos de datos incorrectos ('0' is not a valid value of the atomic type 'xs:positiveInteger'), elementos inesperados o ausentes, infracciones de enumeraciones y patrones, atributos obligatorios ausentes. Haga clic en un error para ir a esa línea del editor, o copie la lista completa. Primero, que esté bien formado: si el XML o el propio esquema están rotos, obtendrá la línea y la columna del analizador XML del navegador antes de intentar la validación. Se informan los esquemas rotos, por ejemplo una referencia de tipo que no se resuelve, con la línea en el XSD. Esquemas de varios archivos: use Añadir archivos de esquema para cargar los archivos referenciados por xs:include o xs:import (por su nombre de archivo). Validar al escribir, o desactívelo y pulse Validar (Ctrl+Enter) con documentos grandes. Cómo usarlo Pegue o suelte el XML a la izquierda y el XSD a la derecha. El ejemplo muestra un pedido de compra con cuatro tipos de errores para que vea cómo es la lista de errores.\nPrivacidad El motor de validación (unos 800 KB, del paquete de código abierto xmllint-wasm) se descarga de cdn.jsdelivr.net la primera vez que valida y después su navegador lo guarda en caché. Su XML y su XSD se procesan localmente y nunca se suben; las últimas entradas se guardan en el almacenamiento local.\n","permalink":"https://www.softinbit.com/es/tools/xml-xsd-validator/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue un documento XML y su esquema XSD y compruebe si el documento se ajusta a él. La validación usa \u003cstrong\u003elibxml2\u003c/strong\u003e, la misma biblioteca que hay detrás de la herramienta de línea de comandos \u003ccode\u003exmllint\u003c/code\u003e, compilada a WebAssembly y ejecutada en un worker en segundo plano de su navegador.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCada error, con su línea\u003c/strong\u003e: tipos de datos incorrectos (\u003ccode\u003e'0' is not a valid value of the atomic type 'xs:positiveInteger'\u003c/code\u003e), elementos inesperados o ausentes, infracciones de enumeraciones y patrones, atributos obligatorios ausentes. Haga clic en un error para ir a esa línea del editor, o copie la lista completa.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePrimero, que esté bien formado\u003c/strong\u003e: si el XML o el propio esquema están rotos, obtendrá la línea y la columna del analizador XML del navegador antes de intentar la validación.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSe informan los esquemas rotos\u003c/strong\u003e, por ejemplo una referencia de tipo que no se resuelve, con la línea en el XSD.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEsquemas de varios archivos\u003c/strong\u003e: use \u003cstrong\u003eAñadir archivos de esquema\u003c/strong\u003e para cargar los archivos referenciados por \u003ccode\u003exs:include\u003c/code\u003e o \u003ccode\u003exs:import\u003c/code\u003e (por su nombre de archivo).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eValidar al escribir\u003c/strong\u003e, o desactívelo y pulse \u003cstrong\u003eValidar\u003c/strong\u003e (\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e) con documentos grandes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003ePegue o suelte el XML a la izquierda y el XSD a la derecha. El ejemplo muestra un pedido de compra con cuatro tipos de errores para que vea cómo es la lista de errores.\u003c/p\u003e","title":"Validador de XML Schema (XSD)"},{"content":"Qué hace Validar comprueba un documento JSON con un JSON Schema mientras escribe, usando Ajv 8, un validador de JSON Schema muy extendido. Generar esquema hace lo contrario: pegue JSON de muestra y obtenga un esquema inicial que podrá perfeccionar.\nFunciones Draft 2020-12 y draft-07. El draft se toma de $schema; si no existe, se deduce de las palabras clave usadas ($defs, prefixItems o definitions, items en forma de tupla). Puede elegirlo usted. Cada error señala su línea. Los errores muestran la ruta de la instancia, la palabra clave que falla, un mensaje legible con el valor problemático y la ruta en el esquema. Haga clic en una ruta para seleccionar esa línea en el JSON o en el esquema. Primero, los problemas del esquema. Un esquema no válido se comprueba con su metaesquema y se informa con rutas en las que se puede hacer clic; se señalan las palabras clave desconocidas (erratas como requird) y los $ref que no se pueden resolver. Formatos como date-time, date, time, email, uri, uuid, ipv4, ipv6, hostname y duration se validan; desactívelo para tratar los formatos como simples anotaciones. Errores de JSON estricto con línea y columna: comas finales, comentarios, comillas simples, ceros a la izquierda. También se informan las claves duplicadas. El generador combina todos los elementos de un array, marca como required las propiedades presentes en todas las muestras, usa uniones de tipos para valores nulos y mixtos y detecta formatos habituales. Opcionalmente añade additionalProperties: false y examples. Cómo usarlo Pegue un esquema a la izquierda y su JSON a la derecha, o suelte archivos .json en cualquiera de los dos lados. En el modo de generación, pegue un objeto o un array de muestras y use Validar con él para probar el resultado de inmediato.\nPrivacidad Todo se ejecuta en su navegador. Su esquema y su JSON nunca se suben, y las URL de $ref externas no se descargan. Las últimas entradas se guardan en el almacenamiento local de su navegador.\n","permalink":"https://www.softinbit.com/es/tools/json-schema/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eValidar\u003c/strong\u003e comprueba un documento JSON con un JSON Schema mientras escribe, usando \u003ca href=\"https://ajv.js.org/\"\u003eAjv\u003c/a\u003e 8, un validador de JSON Schema muy extendido. \u003cstrong\u003eGenerar esquema\u003c/strong\u003e hace lo contrario: pegue JSON de muestra y obtenga un esquema inicial que podrá perfeccionar.\u003c/p\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDraft 2020-12 y draft-07.\u003c/strong\u003e El draft se toma de \u003ccode\u003e$schema\u003c/code\u003e; si no existe, se deduce de las palabras clave usadas (\u003ccode\u003e$defs\u003c/code\u003e, \u003ccode\u003eprefixItems\u003c/code\u003e o \u003ccode\u003edefinitions\u003c/code\u003e, \u003ccode\u003eitems\u003c/code\u003e en forma de tupla). Puede elegirlo usted.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCada error señala su línea.\u003c/strong\u003e Los errores muestran la ruta de la instancia, la palabra clave que falla, un mensaje legible con el valor problemático y la ruta en el esquema. Haga clic en una ruta para seleccionar esa línea en el JSON o en el esquema.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePrimero, los problemas del esquema.\u003c/strong\u003e Un esquema no válido se comprueba con su metaesquema y se informa con rutas en las que se puede hacer clic; se señalan las palabras clave desconocidas (erratas como \u003ccode\u003erequird\u003c/code\u003e) y los \u003ccode\u003e$ref\u003c/code\u003e que no se pueden resolver.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFormatos\u003c/strong\u003e como \u003ccode\u003edate-time\u003c/code\u003e, \u003ccode\u003edate\u003c/code\u003e, \u003ccode\u003etime\u003c/code\u003e, \u003ccode\u003eemail\u003c/code\u003e, \u003ccode\u003euri\u003c/code\u003e, \u003ccode\u003euuid\u003c/code\u003e, \u003ccode\u003eipv4\u003c/code\u003e, \u003ccode\u003eipv6\u003c/code\u003e, \u003ccode\u003ehostname\u003c/code\u003e y \u003ccode\u003eduration\u003c/code\u003e se validan; desactívelo para tratar los formatos como simples anotaciones.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErrores de JSON estricto\u003c/strong\u003e con línea y columna: comas finales, comentarios, comillas simples, ceros a la izquierda. También se informan las claves duplicadas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEl generador\u003c/strong\u003e combina todos los elementos de un array, marca como \u003ccode\u003erequired\u003c/code\u003e las propiedades presentes en todas las muestras, usa uniones de tipos para valores nulos y mixtos y detecta formatos habituales. Opcionalmente añade \u003ccode\u003eadditionalProperties: false\u003c/code\u003e y \u003ccode\u003eexamples\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cómo-usarlo\"\u003eCómo usarlo\u003c/h2\u003e\n\u003cp\u003ePegue un esquema a la izquierda y su JSON a la derecha, o suelte archivos \u003ccode\u003e.json\u003c/code\u003e en cualquiera de los dos lados. En el modo de generación, pegue un objeto o un array de muestras y use \u003cstrong\u003eValidar con él\u003c/strong\u003e para probar el resultado de inmediato.\u003c/p\u003e","title":"Validador y generador de JSON Schema"},{"content":"Qué hace Pegue líneas de log o suelte uno o varios archivos de log y se convertirán en una tabla rápida y filtrable. Las plantillas de mensaje se renderizan con los valores de sus propiedades, de modo que Placed order {OrderId} se lee como Placed order 10457, y todas las propiedades siguen disponibles para filtrar.\nFormatos compatibles Serilog Compact JSON (CLEF): @t, @m, @mt, @l, @x, @i, @r, @tr / @sp y todas las propiedades, incluido el escape @@. Serilog JsonFormatter: Timestamp, Level, MessageTemplate, RenderedMessage, Properties, Renderings. Consola JSON de Microsoft.Extensions.Logging (LogLevel, Category, State) y líneas JSON genéricas con nombres de campo habituales. Texto: salida de consola y de archivo de Serilog ([14:32:10 INF] ...), el formato de consola info: Category[0] y líneas de estilo NLog. Los mensajes de varias líneas y las trazas de pila se mantienen con su entrada. Funciones Renderizado de plantillas con desestructuración {@Order} como JSON, alineación y especificadores de formato de .NET ({Elapsed:0.00}, {Total:N2}, {Date:yyyy-MM-dd}). Chips de nivel con recuentos, búsqueda (palabras simples o /regex/) y filtros de propiedades como OrderId = 42, Elapsed \u0026gt; 500 o RequestPath ~ /api. Haga clic en un valor del panel de detalles para filtrar por él. Histograma de entradas por minuto, coloreado por nivel. Arrastre sobre él para seleccionar un rango de tiempo. Tabla virtualizada: solo se dibujan las filas visibles, así que los archivos de más de 100 000 líneas se desplazan con fluidez. Use las flechas del teclado para moverse entre filas. Exporte las filas filtradas como líneas JSON (CLEF) o CSV. Privacidad Los archivos se leen en su navegador y nunca se suben. Los archivos abiertos solo permanecen en memoria; el texto pegado se guarda en el almacenamiento local hasta que lo borre.\n","permalink":"https://www.softinbit.com/es/tools/log-viewer/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue líneas de log o suelte uno o varios archivos de log y se convertirán en una tabla rápida y filtrable. Las plantillas de mensaje se renderizan con los valores de sus propiedades, de modo que \u003ccode\u003ePlaced order {OrderId}\u003c/code\u003e se lee como \u003ccode\u003ePlaced order 10457\u003c/code\u003e, y todas las propiedades siguen disponibles para filtrar.\u003c/p\u003e\n\u003ch2 id=\"formatos-compatibles\"\u003eFormatos compatibles\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSerilog Compact JSON (CLEF)\u003c/strong\u003e: \u003ccode\u003e@t\u003c/code\u003e, \u003ccode\u003e@m\u003c/code\u003e, \u003ccode\u003e@mt\u003c/code\u003e, \u003ccode\u003e@l\u003c/code\u003e, \u003ccode\u003e@x\u003c/code\u003e, \u003ccode\u003e@i\u003c/code\u003e, \u003ccode\u003e@r\u003c/code\u003e, \u003ccode\u003e@tr\u003c/code\u003e / \u003ccode\u003e@sp\u003c/code\u003e y todas las propiedades, incluido el escape \u003ccode\u003e@@\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSerilog \u003ccode\u003eJsonFormatter\u003c/code\u003e\u003c/strong\u003e: \u003ccode\u003eTimestamp\u003c/code\u003e, \u003ccode\u003eLevel\u003c/code\u003e, \u003ccode\u003eMessageTemplate\u003c/code\u003e, \u003ccode\u003eRenderedMessage\u003c/code\u003e, \u003ccode\u003eProperties\u003c/code\u003e, \u003ccode\u003eRenderings\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConsola JSON de Microsoft.Extensions.Logging\u003c/strong\u003e (\u003ccode\u003eLogLevel\u003c/code\u003e, \u003ccode\u003eCategory\u003c/code\u003e, \u003ccode\u003eState\u003c/code\u003e) y líneas JSON genéricas con nombres de campo habituales.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTexto\u003c/strong\u003e: salida de consola y de archivo de Serilog (\u003ccode\u003e[14:32:10 INF] ...\u003c/code\u003e), el formato de consola \u003ccode\u003einfo: Category[0]\u003c/code\u003e y líneas de estilo NLog. Los mensajes de varias líneas y las trazas de pila se mantienen con su entrada.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"funciones\"\u003eFunciones\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRenderizado de plantillas\u003c/strong\u003e con desestructuración \u003ccode\u003e{@Order}\u003c/code\u003e como JSON, alineación y especificadores de formato de .NET (\u003ccode\u003e{Elapsed:0.00}\u003c/code\u003e, \u003ccode\u003e{Total:N2}\u003c/code\u003e, \u003ccode\u003e{Date:yyyy-MM-dd}\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChips de nivel\u003c/strong\u003e con recuentos, \u003cstrong\u003ebúsqueda\u003c/strong\u003e (palabras simples o \u003ccode\u003e/regex/\u003c/code\u003e) y \u003cstrong\u003efiltros de propiedades\u003c/strong\u003e como \u003ccode\u003eOrderId = 42\u003c/code\u003e, \u003ccode\u003eElapsed \u0026gt; 500\u003c/code\u003e o \u003ccode\u003eRequestPath ~ /api\u003c/code\u003e. Haga clic en un valor del panel de detalles para filtrar por él.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHistograma\u003c/strong\u003e de entradas por minuto, coloreado por nivel. Arrastre sobre él para seleccionar un rango de tiempo.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTabla virtualizada\u003c/strong\u003e: solo se dibujan las filas visibles, así que los archivos de más de 100 000 líneas se desplazan con fluidez. Use las flechas del teclado para moverse entre filas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExporte\u003c/strong\u003e las filas filtradas como líneas JSON (CLEF) o CSV.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"privacidad\"\u003ePrivacidad\u003c/h2\u003e\n\u003cp\u003eLos archivos se leen en su navegador y nunca se suben. Los archivos abiertos solo permanecen en memoria; el texto pegado se guarda en el almacenamiento local hasta que lo borre.\u003c/p\u003e","title":"Visor de logs Serilog / CLEF"},{"content":"Qué hace Pegue ShowPlan XML o arrastre un archivo .sqlplan. Cada instrucción se dibuja como un árbol de operadores, de derecha a izquierda como en SSMS o de arriba abajo. Cada operador muestra su parte del coste estimado, el objeto al que accede y sus recuentos de filas. En los planes reales muestra las filas reales junto a la estimación y marca las estimaciones que se desvían 10 veces o más. El grosor de las flechas depende del número de filas.\nHallazgos La lista de Hallazgos muestra primero los problemas más probables:\nConversiones implícitas (CONVERT_IMPLICIT) que impiden un Index Seek o distorsionan las estimaciones Key lookups y RID lookups, con las columnas que debe añadir como INCLUDE para eliminarlos Recorridos que leen muchas filas para devolver unas pocas Volcados a tempdb y advertencias de concesión de memoria Índices que faltan, con una instrucción CREATE NONCLUSTERED INDEX ... INCLUDE (...) lista para usar y el impacto estimado por el optimizador Parameter sniffing: valores de los parámetros en la compilación frente a la ejecución Errores de estimación de filas, señalados donde se originan y no en cada operador superior Tiempos de espera agotados del optimizador, joins sin predicado, estadísticas que faltan y las esperas principales Haga clic en un hallazgo para saltar a su operador.\nCómo usarlo En SSMS, haga clic derecho en el plan y elija Mostrar XML del plan de ejecución, o guárdelo como .sqlplan. Péguelo o arrástrelo aquí. Use Ajustar, los botones de zoom o Ctrl+rueda, y arrastre para desplazarse. Haga clic en cualquier operador para ver todas sus propiedades: predicados, claves de búsqueda, columnas de salida, estimaciones de E/S y CPU, ejecuciones y lecturas reales. Privacidad El plan se analiza en su navegador y nunca se sube. Contiene el texto de su consulta y los valores de los parámetros, por lo que solo permanece en el almacenamiento local hasta que lo borre.\n","permalink":"https://www.softinbit.com/es/tools/sql-plan-viewer/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003ePegue ShowPlan XML o arrastre un archivo \u003ccode\u003e.sqlplan\u003c/code\u003e. Cada instrucción se dibuja como un árbol de operadores, de derecha a izquierda como en SSMS o de arriba abajo. Cada operador muestra su parte del coste estimado, el objeto al que accede y sus recuentos de filas. En los planes reales muestra las filas reales junto a la estimación y marca las estimaciones que se desvían 10 veces o más. El grosor de las flechas depende del número de filas.\u003c/p\u003e","title":"Visor de planes de ejecución de SQL Server"},{"content":"Qué hace Escriba o pegue Markdown a la izquierda y véalo renderizado a la derecha mientras escribe. El renderizador admite GitHub Flavored Markdown: tablas, listas de tareas (- [x] done), bloques de código delimitados, tachado y enlaces automáticos.\nDesplazamiento sincronizado: mantiene la vista previa en el bloque que está editando, incluso con párrafos largos ajustados. Al desplazar la vista previa también se mueve el editor. Diseños de editor, dividido o vista previa, además del botón Enfoque para una vista a pantalla completa sin distracciones. Exportación: copie el HTML renderizado, descargue el archivo .md o descargue una página .html independiente con un estilo legible que funciona en modo claro y oscuro. Recuento de palabras y tiempo de lectura del texto renderizado, no de la sintaxis Markdown. Abra o suelte un archivo .md para revisar un README antes de hacer push. Seguro por defecto Markdown puede contener HTML sin procesar. Cada renderizado pasa por DOMPurify, que elimina scripts, manejadores de eventos y enlaces javascript:, de modo que pegar un README que no sea de confianza no puede ejecutar código en esta página. El HTML copiado y descargado se sanea de la misma manera.\nCómo usarlo Escriba, pegue, abra o suelte Markdown en el editor (o pulse Ejemplo). Active Saltos de línea si los saltos de línea simples deben convertirse en \u0026lt;br\u0026gt;, como en los comentarios de GitHub. Copie o descargue el resultado. El renderizado usa marked. Puede haber pequeñas diferencias con GitHub; por ejemplo, las extensiones propias de GitHub como las alertas, las notas al pie y las fórmulas matemáticas se muestran como Markdown sin formato.\nPrivacidad Su documento permanece en su navegador y se guarda en el almacenamiento local. Las imágenes o enlaces que añada los carga su navegador como lo haría cualquier página web.\n","permalink":"https://www.softinbit.com/es/tools/markdown-preview/","summary":"\u003ch2 id=\"qué-hace\"\u003eQué hace\u003c/h2\u003e\n\u003cp\u003eEscriba o pegue Markdown a la izquierda y véalo renderizado a la derecha mientras escribe. El renderizador admite GitHub Flavored Markdown: tablas, listas de tareas (\u003ccode\u003e- [x] done\u003c/code\u003e), bloques de código delimitados, tachado y enlaces automáticos.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDesplazamiento sincronizado\u003c/strong\u003e: mantiene la vista previa en el bloque que está editando, incluso con párrafos largos ajustados. Al desplazar la vista previa también se mueve el editor.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDiseños de editor, dividido o vista previa\u003c/strong\u003e, además del botón Enfoque para una vista a pantalla completa sin distracciones.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExportación\u003c/strong\u003e: copie el HTML renderizado, descargue el archivo \u003ccode\u003e.md\u003c/code\u003e o descargue una página \u003ccode\u003e.html\u003c/code\u003e independiente con un estilo legible que funciona en modo claro y oscuro.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRecuento de palabras\u003c/strong\u003e y tiempo de lectura del texto renderizado, no de la sintaxis Markdown.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAbra o suelte\u003c/strong\u003e un archivo \u003ccode\u003e.md\u003c/code\u003e para revisar un README antes de hacer push.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"seguro-por-defecto\"\u003eSeguro por defecto\u003c/h2\u003e\n\u003cp\u003eMarkdown puede contener HTML sin procesar. Cada renderizado pasa por \u003ca href=\"https://github.com/cure53/DOMPurify\"\u003eDOMPurify\u003c/a\u003e, que elimina scripts, manejadores de eventos y enlaces \u003ccode\u003ejavascript:\u003c/code\u003e, de modo que pegar un README que no sea de confianza no puede ejecutar código en esta página. El HTML copiado y descargado se sanea de la misma manera.\u003c/p\u003e","title":"Vista previa de Markdown"}]