{"id":1406,"date":"2026-02-23T02:45:38","date_gmt":"2026-02-23T02:45:38","guid":{"rendered":"https:\/\/derecho.unap.edu.pe\/mespinoza\/?p=1406"},"modified":"2026-02-23T02:48:34","modified_gmt":"2026-02-23T02:48:34","slug":"como-solucionar-errores-de-setlocale-y-visualizacion-de-tildes-en-debian-13-via-ssh-desde-macos","status":"publish","type":"post","link":"https:\/\/derecho.unap.edu.pe\/mespinoza\/2026\/02\/como-solucionar-errores-de-setlocale-y-visualizacion-de-tildes-en-debian-13-via-ssh-desde-macos\/","title":{"rendered":"C\u00f3mo solucionar errores de \u00absetlocale\u00bb y visualizaci\u00f3n de tildes en Debian 13 v\u00eda SSH desde macOS"},"content":{"rendered":"\n<p>Si alguna vez has visto el molesto mensaje&nbsp;<code>-bash: aviso: setlocale: LC_CTYPE: no se puede cambiar el local (UTF-8)<\/code>&nbsp;al conectarte por SSH desde tu Mac a un servidor Debian, no est\u00e1s solo. Este error ocurre por un conflicto de comunicaci\u00f3n: tu Mac intenta imponer su configuraci\u00f3n de idioma y el servidor no sabe c\u00f3mo interpretarla.<\/p>\n\n\n\n<p>En esta gu\u00eda aprender\u00e1s a solucionar este error de ra\u00edz y a configurar el servidor para que soporte correctamente&nbsp;<strong>tildes y la letra \u00ab\u00f1\u00bb<\/strong>&nbsp;para todos los usuarios.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. El Problema: \u00bfPor qu\u00e9 ocurre?<\/h2>\n\n\n\n<p>El conflicto tiene dos or\u00edgenes:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>El Cliente (macOS):<\/strong>\u00a0Por defecto, la terminal de Mac intenta enviar variables de entorno de idioma (como\u00a0<code>LANG<\/code>\u00a0y\u00a0<code>LC_*<\/code>) al servidor remoto.<\/li>\n\n\n\n<li><strong>El Servidor (Debian):<\/strong>\u00a0Si el servidor no tiene instalado exactamente el mismo \u00abpaquete de idioma\u00bb que env\u00eda el Mac (ej. un simple\u00a0<code>UTF-8<\/code>\u00a0gen\u00e9rico en lugar de\u00a0<code>es_PE.UTF-8<\/code>), lanza un aviso de error y cae en una configuraci\u00f3n b\u00e1sica llamada\u00a0<strong>C.UTF-8<\/strong>, la cual no siempre maneja bien los caracteres especiales.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Paso 1: Configuraci\u00f3n en el Cliente (iMac\/MacBook)<\/h2>\n\n\n\n<p>Para evitar que tu Mac env\u00ede variables que el servidor no entiende, debemos modificar la configuraci\u00f3n del cliente SSH.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Abre la\u00a0<strong>Terminal<\/strong>\u00a0en tu Mac.<\/li>\n\n\n\n<li>Edita el archivo de configuraci\u00f3n global de SSH con el siguiente comando:Bash<code>sudo nano \/etc\/ssh\/ssh_config<\/code><\/li>\n\n\n\n<li>Busca la l\u00ednea que dice:\u00a0<code>SendEnv LANG LC_*<\/code><\/li>\n\n\n\n<li>Desact\u00edvala agregando un s\u00edmbolo de almohadilla (<code>#<\/code>) al inicio:\u00a0<strong><code># SendEnv LANG LC_*<\/code><\/strong><\/li>\n\n\n\n<li>Guarda los cambios presionado\u00a0<code>Control + O<\/code>, luego\u00a0<code>Enter<\/code>\u00a0y sal con\u00a0<code>Control + X<\/code>.<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>\u00bfQu\u00e9 logramos con esto?<\/strong>&nbsp;Ahora tu Mac se conectar\u00e1 de forma \u00abneutral\u00bb, permitiendo que el servidor decida qu\u00e9 idioma usar.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Paso 2: Configuraci\u00f3n Global en el Servidor (Debian)<\/h2>\n\n\n\n<p>Ahora que el servidor tiene el control, debemos asegurarnos de que hable espa\u00f1ol correctamente para&nbsp;<strong>todos los perfiles de usuario<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A. Generar los Locales necesarios<\/h3>\n\n\n\n<p>Con\u00e9ctate a tu servidor y ejecuta el siguiente comando para generar el soporte de idioma para Per\u00fa (o tu pa\u00eds de preferencia):<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo locale-gen es_PE.UTF-8\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">B. Reconfigurar el sistema interactivamente<\/h3>\n\n\n\n<p>Este es el paso m\u00e1s importante para que el cambio sea permanente y afecte a todo el sistema:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Ejecuta:Bash<code>sudo dpkg-reconfigure locales<\/code><\/li>\n\n\n\n<li><strong>Selecci\u00f3n de idiomas:<\/strong>\u00a0Ver\u00e1s una lista larga. Busca\u00a0<code>es_PE.UTF-8 UTF-8<\/code>. Aseg\u00farate de que est\u00e9 marcada con un asterisco (usa la\u00a0<strong>barra espaciadora<\/strong>\u00a0para marcar\/desmarcar). Presiona\u00a0<code>Enter<\/code>.<\/li>\n\n\n\n<li><strong>Idioma predeterminado:<\/strong>\u00a0El sistema te preguntar\u00e1 cu\u00e1l debe ser el local por defecto para el entorno del sistema. Selecciona\u00a0<strong><code>es_PE.UTF-8<\/code><\/strong>\u00a0y presiona\u00a0<code>Enter<\/code>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">C. Editar el archivo de entorno global<\/h3>\n\n\n\n<p>Para asegurar que no existan variables \u00abrebeldes\u00bb como&nbsp;<code>LC_ALL=C.UTF-8<\/code>&nbsp;que pisen nuestra configuraci\u00f3n, editaremos el archivo de locales:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Abre el archivo:Bash<code>sudo nano \/etc\/default\/locale<\/code><\/li>\n\n\n\n<li>D\u00e9jalo configurado exactamente as\u00ed:Plaintext<code>LANG=es_PE.UTF-8 LANGUAGE=es_PE:es LC_ALL=es_PE.UTF-8<\/code><\/li>\n\n\n\n<li>Guarda y sal (<code>Ctrl+O<\/code>,\u00a0<code>Enter<\/code>,\u00a0<code>Ctrl+X<\/code>).<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Paso 3: Limpieza de perfiles individuales (Opcional)<\/h2>\n\n\n\n<p>Si previamente hab\u00edas intentado arreglar esto editando archivos individuales como&nbsp;<code>.bashrc<\/code>&nbsp;o&nbsp;<code>.profile<\/code>, es recomendable limpiar esas l\u00edneas para que no entren en conflicto con la configuraci\u00f3n global que acabamos de crear.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Revisa tu archivo personal:\u00a0<code>nano ~\/.bashrc<\/code><\/li>\n\n\n\n<li>Si ves l\u00edneas que exportan\u00a0<code>LANG<\/code>\u00a0o\u00a0<code>LC_ALL<\/code>, puedes borrarlas o comentarlas con\u00a0<code>#<\/code>.<\/li>\n\n\n\n<li>Aplica los cambios:\u00a0<code>source ~\/.bashrc<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Verificaci\u00f3n Final<\/h2>\n\n\n\n<p>Para confirmar que todo est\u00e1 perfecto, cierra tu sesi\u00f3n SSH y vuelve a entrar. Luego ejecuta:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>locale\n<\/code><\/pre>\n\n\n\n<p>La salida deber\u00eda mostrarse as\u00ed (sin errores previos):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td>Variable<\/td><td>Valor<\/td><\/tr><\/thead><tbody><tr><td><strong>LANG<\/strong><\/td><td><code>es_PE.UTF-8<\/code><\/td><\/tr><tr><td><strong>LC_ALL<\/strong><\/td><td><code>es_PE.UTF-8<\/code><\/td><\/tr><tr><td><strong>LC_CTYPE<\/strong><\/td><td><code>\"es_PE.UTF-8\"<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Exportar a Hojas de c\u00e1lculo<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prueba de fuego<\/h3>\n\n\n\n<p>Escribe en la consola:&nbsp;<code>\u00e1 \u00e9 \u00ed \u00f3 \u00fa \u00f1<\/code>. Si puedes verlas claramente sin s\u00edmbolos extra\u00f1os como&nbsp;<code>\\303<\/code>&nbsp;o&nbsp;<code>?<\/code>,&nbsp;<strong>\u00a1felicidades!<\/strong>Has configurado correctamente tu entorno Debian.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen de comandos r\u00e1pidos<\/h3>\n\n\n\n<p>Si tienes prisa, estos son los comandos esenciales en el servidor:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sudo locale-gen es_PE.UTF-8<\/code><\/li>\n\n\n\n<li><code>sudo dpkg-reconfigure locales<\/code>\u00a0(elegir es_PE.UTF-8)<\/li>\n\n\n\n<li><code>sudo update-locale LANG=es_PE.UTF-8 LC_ALL=es_PE.UTF-8<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Test desde la consola (L\u00ednea de comandos)<\/h3>\n\n\n\n<p>Si quieres probarlo directamente en la terminal de tu Debian (donde acabas de arreglar los&nbsp;<em>locales<\/em>), ejecuta:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php -r 'echo \"Probando tildes en el servidor: Per\u00fa\\n\";'\n<\/code><\/pre>\n\n\n\n<p>Si el resultado es&nbsp;<code>Per\u00fa<\/code>, tu configuraci\u00f3n de consola es exitosa. Si ves algo distinto, aseg\u00farate de que tu cliente SSH (Terminal de Mac) tenga activada la opci\u00f3n&nbsp;<strong>\u00abUnicode UTF-8\u00bb<\/strong>&nbsp;en sus preferencias de codificaci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 hacer si falla en el navegador?<\/h3>\n\n\n\n<p>Si en la consola funciona pero en el navegador se ve mal, a\u00f1ade esto a tu configuraci\u00f3n de PHP-FPM (usualmente en&nbsp;<code>\/etc\/php\/8.x\/fpm\/php.ini<\/code>):<\/p>\n\n\n\n<p>Ini, TOML<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>default_charset = \"UTF-8\"\n<\/code><\/pre>\n\n\n\n<p>Luego reinicia el servicio:<\/p>\n\n\n\n<p>Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart php8.x-fpm\n<\/code><\/pre>\n\n\n\n<p><em>(Reemplaza&nbsp;<code>8.x<\/code>&nbsp;por tu versi\u00f3n de PHP, por ejemplo&nbsp;<code>8.2<\/code>&nbsp;o&nbsp;<code>8.4<\/code>)<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si alguna vez has visto el molesto mensaje&nbsp;-bash: aviso: setlocale: LC_CTYPE: no se puede cambiar el local (UTF-8)&nbsp;al conectarte por SSH desde tu Mac a&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/derecho.unap.edu.pe\/mespinoza\/2026\/02\/como-solucionar-errores-de-setlocale-y-visualizacion-de-tildes-en-debian-13-via-ssh-desde-macos\/\">Seguir leyendo<span class=\"screen-reader-text\">C\u00f3mo solucionar errores de \u00absetlocale\u00bb y visualizaci\u00f3n de tildes en Debian 13 v\u00eda SSH desde macOS<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-1406","post","type-post","status-publish","format-standard","hentry","category-manuales","entry"],"_links":{"self":[{"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/posts\/1406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/comments?post=1406"}],"version-history":[{"count":2,"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/posts\/1406\/revisions"}],"predecessor-version":[{"id":1408,"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/posts\/1406\/revisions\/1408"}],"wp:attachment":[{"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/media?parent=1406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/categories?post=1406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/derecho.unap.edu.pe\/mespinoza\/wp-json\/wp\/v2\/tags?post=1406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}