Codificación de caracteres y texto ilegible

Mantenido el

Al trabajar con texto en japonés (o con acentos y otros caracteres no ASCII) en el símbolo del sistema, es posible que aparezcan caracteres ilegibles. Ocurre con frecuencia al manejar archivos UTF-8 o al procesar la salida de otros programas.

Este artículo explica las causas del texto ilegible y cómo solucionarlo.

Por qué aparece texto ilegible

El texto ilegible aparece porque quien escribe el texto y quien lo lee usan codificaciones de caracteres distintas.

En Windows en japonés conviven las siguientes codificaciones.

CodificaciónPágina de códigosDescripción
Shift_JIS932Valor predeterminado de Windows en japonés
UTF-865001La opción predominante en la web y el desarrollo
UTF-16-Usada internamente por Windows

La página de códigos predeterminada del símbolo del sistema es 932 (Shift_JIS) en un Windows en japonés (en otros idiomas es otra, por ejemplo 850 u 437), pero los editores de texto y programas actuales suelen usar UTF-8 de forma predeterminada. Esta discrepancia es la causa principal del texto ilegible.

Comprobar la página de códigos actual

chcp
- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>chcp
Página de códigos activa: 932
C:\users\user>

Cambiar la página de códigos (comando chcp)

El comando chcp cambia la página de códigos.

Cambiar a UTF-8

chcp 65001
- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>chcp 65001
Página de códigos activa: 65001
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

Volver a Shift_JIS

chcp 932
Alcance de chcp

La página de códigos cambiada con chcp solo es válida en esa ventana del símbolo del sistema. Al abrir una ventana nueva se vuelve a la página de códigos predeterminada.

Solucionar el texto ilegible en archivos por lotes

Solución 1: cuidado con la codificación al guardar el archivo por lotes

Un archivo por lotes debe guardarse con la misma codificación que la página de códigos del símbolo del sistema.

Formato de guardadoComportamiento
ANSI (Shift_JIS)Funciona con la página de códigos predeterminada 932
UTF-8 (sin BOM)Se usa junto con chcp 65001
UTF-8 (con BOM)Pueden aparecer caracteres basura al principio
UTF-8 con BOM

Si guardas un archivo por lotes como UTF-8 con BOM, el BOM (Byte Order Mark) del inicio puede impedir que @echo off se reconozca correctamente. Al guardar como UTF-8, elige sin BOM.

Solución 2: cambiar chcp dentro del archivo por lotes

En un archivo por lotes que procesa archivos UTF-8, cambia la página de códigos al principio.

@echo off
setlocal

rem Guarda la página de códigos actual y cambia a UTF-8
for /f "tokens=2 delims=:" %%a in ('chcp') do set ORIG_CP=%%a
chcp 65001 >nul

rem Procesa el archivo UTF-8
type "utf8_data.txt"

rem Restaura la página de códigos original
chcp %ORIG_CP% >nul

endlocal

El texto de la salida de chcp varía según el idioma de la interfaz, pero el número de la página de códigos siempre va después de dos puntos (:), por lo que delims=: lo extrae como se muestra arriba. Guardar la página de códigos original permite restaurarla de forma fiable sin escribir 932 a mano.

チェック

Añadir >nul, como en chcp 65001 >nul, suprime el mensaje “Página de códigos activa: 65001”.

Los archivos por lotes en UTF-8 pueden ser inestables en sistemas antiguos

Ejecutar con chcp 65001 un archivo por lotes UTF-8 que contiene texto en japonés puede hacer que las etiquetas y goto se interpreten mal en versiones antiguas de Windows 10 y similares. Si distribuyes el archivo por lotes o no conoces el entorno de destino, guardar como Shift_JIS (Solución 3) es la opción segura.

Solución 3: guardar como Shift_JIS

Cuando el propio archivo por lotes contiene texto en japonés, el método más fiable es guardarlo como Shift_JIS (ANSI).

En Visual Studio Code, haz clic en el indicador de codificación de la esquina inferior derecha, elige “Guardar con codificación” y selecciona “Japanese (Shift JIS)”.

Usar UTF-8 como valor predeterminado en todo el sistema

En Windows 10 versión 1803 y posteriores (incluido Windows 11), puedes hacer que UTF-8 sea el valor predeterminado de todo el sistema desde la configuración regional.

  1. Abre Configuración → Hora e idioma → Idioma y región → Configuración de idioma administrativo (también se abre ejecutando intl.cpl)
  2. En la pestaña “Administrativa”, selecciona “Cambiar configuración regional del sistema”
  3. Marca “Beta: usar Unicode UTF-8 para la compatibilidad con idiomas de todo el mundo” y reinicia
Usa esta opción con cuidado

Al activar esta opción, las aplicaciones antiguas y los archivos por lotes que presuponen Shift_JIS pueden mostrar texto ilegible. Como el impacto es amplio, comprueba primero si el problema se resuelve ajustando chcp o el formato de guardado.

Casos habituales de texto ilegible y soluciones

Caso 1: un archivo UTF-8 se ve ilegible con el comando type

chcp 65001 >nul
type "utf8_file.txt"
chcp 932 >nul

Caso 2: findstr no puede buscar texto en japonés

findstr usa la página de códigos del sistema, por lo que la búsqueda de texto en japonés en un archivo UTF-8 puede no funcionar correctamente.

chcp 65001 >nul
findstr "キーワード" "utf8_file.txt"
chcp 932 >nul

Con PowerShell, indicar la codificación de forma explícita es más fiable.

powershell -NoProfile -Command "Select-String -Path utf8_file.txt -Pattern 'キーワード' -Encoding utf8"
Límites de la compatibilidad de findstr con UTF-8

La compatibilidad de findstr con UTF-8 es incompleta, y las búsquedas con expresiones regulares de texto en japonés pueden no funcionar correctamente. Si necesitas una búsqueda fiable en texto UTF-8, considera el cmdlet Select-String de PowerShell.

Caso 3: la salida de otro programa se ve ilegible

La salida de programas que usan UTF-8 de forma predeterminada, como Python o Node.js, puede verse ilegible.

chcp 65001 >nul
python script.py
chcp 932 >nul

También puedes establecer la codificación de salida del programa mediante una variable de entorno.

set PYTHONIOENCODING=utf-8
python script.py

Esto hace que Python emita UTF-8. Funciona con canalizaciones y archivos, pero en pantalla el texto sigue viéndose ilegible si la página de códigos de la consola sigue siendo 932.

Caso 4: un archivo creado con redirección se ve ilegible

En Windows PowerShell 5.1, un archivo guardado con redirección (>) queda en UTF-16. Al abrirlo en otras herramientas puede verse ilegible o con un espacio entre cada carácter.

Al guardar desde PowerShell, indica la codificación de forma explícita, como en Out-File -Encoding utf8 o Set-Content -Encoding utf8. Ten en cuenta que -Encoding utf8 en Windows PowerShell 5.1 guarda con BOM.

Caso 5: el echo de un archivo por lotes se ve ilegible

Ocurre cuando la codificación con la que se guardó el archivo por lotes no coincide con la página de códigos del símbolo del sistema.

Haz coincidir el formato de guardado del archivo por lotes con la página de códigos del símbolo del sistema.

Configuración de la fuente

Si algunos caracteres no se muestran, la causa puede ser la fuente del símbolo del sistema.

  1. Haz clic con el botón derecho en la barra de título del símbolo del sistema
  2. Selecciona “Propiedades”
  3. En la pestaña “Fuente”, elige “MS Gothic” o “Consolas”
Se recomienda Windows Terminal

Windows Terminal (el terminal predeterminado en Windows 11 22H2 y posteriores) muestra bien UTF-8. Si el texto ilegible aparece con frecuencia, considera usar Windows Terminal.

Resumen

ProblemaSolución
Un archivo UTF-8 se muestra ilegibleCambiar la página de códigos con chcp 65001
El japonés de un archivo por lotes se ve malGuardarlo como Shift_JIS
La salida de otro programa se ve ilegiblechcp 65001 o un ajuste del propio programa
findstr no puede buscar japonésCambiar la página de códigos o usar PowerShell
Problemas con UTF-8 con BOMGuardar como UTF-8 sin BOM

La mayoría de los casos de texto ilegible se resuelven haciendo coincidir las codificaciones de quien escribe y de quien lee.

Artículos relacionados

Preguntas de práctica

Problema de práctica

¿Qué comando cambia la página de códigos del símbolo del sistema a UTF-8?

回答がサーバーに送信されることはありません
#Símbolo del sistema #Archivo por lotes #Texto ilegible #UTF-8 #Codificación de caracteres