Escape un campo CSV: comas, saltos de línea y comillas
Un campo CSV parece sencillo hasta que su valor contiene una coma, un salto de línea o comillas.
Ejecutar — gratis
Esta herramienta aplica las reglas de escape estándar a un valor de texto para que usted pueda insertarlo de forma segura en una fila separada por comas. Conserva el texto normal, encierra entre comillas dobles los campos que necesitan protección y duplica las comillas interiores. El resultado es determinista, reutilizable de inmediato y adecuado para hojas de cálculo, exportaciones, informes generados y flujos de datos.
Convierta cualquier texto en un campo CSV seguro
CSV utiliza comas y finales de línea para separar campos y registros, lo que plantea un problema cuando esos caracteres forman parte del propio valor. Pegue o envíe un valor de texto y la herramienta devolverá la representación exacta que puede ocupar una sola posición en una fila separada por comas. Un valor sencillo, como un código de cuenta, permanece intacto. Si contiene una coma, un retorno de carro, un salto de línea o comillas dobles, se encierra entre comillas dobles. Cada comilla doble que ya exista en el valor se convierte en dos comillas consecutivas, para que un lector CSV conforme pueda reconstruir el carácter original. La transformación solo modifica la sintaxis necesaria para la seguridad del CSV: no recorta espacios, normaliza finales de línea, reinterpreta números ni cambia mayúsculas. Su alcance preciso permite usarla como componente fiable cuando una aplicación ya compone filas y columnas, pero necesita una regla correcta y reutilizable para cada valor. El texto vacío es válido y permanece vacío porque no requiere comillas protectoras en un registro estándar delimitado por comas.
Sepa cuándo se aplican las comillas y su duplicación
La distinción importante es la que existe entre el contenido y la estructura CSV. Una coma dentro del nombre de una empresa no debe convertirse en una columna nueva, y un salto de línea dentro de una dirección no debe iniciar otro registro. Encerrar el campo completo entre comillas dobles indica al analizador que esos caracteres son contenido literal. Las comillas dobles requieren una regla adicional: dentro de un campo CSV entrecomillado, cada comilla literal se representa con dos comillas. Esta herramienta detecta todos esos casos conjuntamente. Por ejemplo, un texto que contiene una coma y un apodo entre comillas recibe un par exterior de comillas, mientras que cada comilla original se duplica. El texto sin caracteres estructurales se devuelve tal cual, evitando cambios innecesarios y manteniendo la validez CSV. El comportamiento admite tanto saltos de línea de Unix como retornos de carro utilizados por otros sistemas. Se centra deliberadamente en CSV separado por comas y no en delimitadores configurables; si su flujo produce datos separados por tabulaciones o punto y coma, use las reglas propias de ese formato. La salida es un campo, no una fila, cabecera o archivo completo.
Utilice el valor escapado en exportaciones y procesos
Coloque el texto devuelto directamente entre las comas que emite su generador de filas, sin añadir otra capa de comillas. Aplicar la operación de forma independiente a cada valor de origen permite generar filas a partir de formularios, resultados de bases de datos, registros o informes. Como el algoritmo es determinista y no depende de la red, la misma entrada siempre produce el mismo campo escapado tanto en el navegador como mediante la API. Así resulta sencillo probarlo con datos fijos y usarlo en compilaciones repetibles. No vuelva a procesar un campo ya escapado salvo que esa representación sea ahora el nuevo valor literal: el escape CSV depende del contexto, por lo que una segunda pasada tratará correctamente la sintaxis anterior como contenido y añadirá otra capa. Recuerde además que esta capacidad resuelve la sintaxis de campos, no la seguridad de fórmulas de hojas de cálculo. Si un texto no confiable que comienza con un signo igual se abrirá en una hoja de cálculo, evalúe por separado los controles contra inyección de fórmulas según la política del programa de destino. Por último, una los campos escapados con comas y termine cada registro con el final de línea que exija el sistema receptor.
Qué puede hacer con ella
Genere una exportación CSV segura
Escape cada valor de la base de datos o aplicación antes de unir los campos resultantes en un registro separado por comas.
Conserve direcciones de varias líneas
Mantenga los saltos de línea incrustados dentro de un único campo de dirección sin crear registros CSV adicionales por accidente.
Proteja nombres y descripciones
Represente comas y comillas en nombres de productos, notas y descripciones sin desplazar las columnas posteriores.
Preguntas frecuentes
¿Cuánto cuesta una solicitud?
Una solicitud mediante API cuesta $0.002. La misma transformación determinista también está disponible gratis en el navegador.
¿Todos los valores reciben comillas?
No. El resultado se entrecomilla si el texto contiene una coma, un retorno de carro, un salto de línea o comillas dobles; de lo contrario, se devuelve sin cambios.
¿Cómo se escapan las comillas?
Cada comilla doble dentro de un campo entrecomillado se convierte en dos comillas consecutivas, y un par de comillas dobles encierra el campo completo.
¿Esta herramienta crea una fila CSV completa?
No. Devuelve un único campo escapado. Escape cada valor por separado, una los resultados con comas y añada el final de registro apropiado.
¿Admite valores de varias líneas?
Sí. El texto que contiene retornos de carro o saltos de línea se entrecomilla para que dichos saltos permanezcan dentro de un único campo.
¿Esto evita la inyección de fórmulas en hojas de cálculo?
No. Solo implementa la sintaxis de campos CSV. La mitigación de inyección de fórmulas depende del destino y debe aplicarse como una política independiente.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/str/escape-csv-field \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Quarterly report, \"final\""}'const res = await fetch("https://api.kit.forhosting.com/str/escape-csv-field", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Quarterly report, \"final\""
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/escape-csv-field",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Quarterly report, \"final\""
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/escape-csv-field", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Quarterly report, \\"final\\""}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Quarterly report, \"final\""}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/escape-csv-field", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "Quarterly report, \"final\""
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.escape_csv_field",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |