En los años 70, 80 y 90, el estándar que regulaba qué letras usaba el ordenador era la norma americana ASCII. Os podéis imaginar que esa norma no incluía acentos. Por ello reservaba 32 posiciones para códigos de control, otras 32 para números y símbolos y, entre el 64 y el 127, el alfabeto en mayñusculas y minúsculas, los paréntesis y algunos símbolos. Así, había solo 127 caracteres (7 bits), lo que permitía reservar un bit de las transmisiones como señal de control.
La norma ISO-676 establecía algunos lugares en que guardar las letras con acentos, pero como esos lugares se usaban para símbolos importantes en programación, al final casi ningún fabricante la aplicaba.
Hacia 1980, en realidad, ya casi todos los fabricantes asignaban hasta 256 caracteres para guardar símbolos. Pero cada fabricante hacía con esas 127 posiciones disponibles lo que quería.
En el mundo PC, los primeros PC tenían un conjunto llamado “página de códigos 437” que contenía caracteres para dibujar líneas (┘), algunos símbolos matemáticos (°) y letras minúsculas con tilde (á). Para exportar a otros países, se crearon otras páginas de códigos, como la 850, que incluía mayúsculas con tilde. Casi todos mis programas de Gw-BASIC están escritos en esa página de códigos.
Pero, cuando llegó Windows, había ya un estándar aceptado mundialmente, el ISO-8859-1 (aunque los de Windows, anglosajones ellos, no lo citaron nunca por el nombre de la norma internacional, sino por la norma ANSI norteamericana que lo regula, 1252).
Pues bien, ¿cómo hacer que algo que se ve bien en la “página de caracteres” de MS-DOS se vea bien al abrirlo en Windows?
Esa operación se llama “transcodificar”. En Windows 3, el bloc de notas podía “transcodificar” si le decíamos en qué página de códigos de MS-DOS estaba el archivo que iba a abrir. Pero, a partir de Windows XP, consideraron que ya nadie abría archivos de MS-DOS en el bloc de notas.
Sin embargo, habrás observado que si copias y pegas desde la consola de comandos de MS-DOS, normalmente el resultado lleva los acentos en su sitio, aunque la consola esté mostrando la página de códigos de MS-DOS.
En Windows 10 y superior se puede transcodificar usando el comando chcp.
Eso quiere decir que ya no necesitamos instalar Iconv u otra utilidad tipo linux para hacerlo.
Ten en cuenta que en los siguientes apartados, los números de página de códigos se refieren a:
Este archivo lo puedes usar para leer mis códigos fuente GW-BASIC con sus acentos bien puestos en el bloc de notas…
Este archivo es casi una copia del que MigrationUser subió a SS64.org
@echo off rem this needs windows 10 or better rem Inspired by post from MigrationUser on ss64 rem https://ss64.org/viewtopic.php?f=2&t=350 chcp 850 > nul clip chcp 1252 >nul powershell get-clipboard chcp 850
Podrías usar esto si hubieras escrito un programa de GW-BASIC o QB64 en el bloc de notas y tuvieras que convertir los acentos al formato original del PC.
@echo off rem this needs windows 10 or better rem Inspired by post from MigrationUser on ss64 rem https://ss64.org/viewtopic.php?f=2&t=350 chcp 1252 > nul clip chcp 850 >nul powershell get-clipboard chcp 1252
Este archivo lo puedes usar para convertir de DOS a Windows código fuente que contenga caracteres de bloques (como “┘┌▄▀”).
Este archivo es casi una copia del que MigrationUser subió a SS64.org
@echo off rem this needs windows 10 or better rem Inspired by post from MigrationUser on ss64 rem https://ss64.org/viewtopic.php?f=2&t=350 chcp 850 > nul clip chcp 65001 >nul powershell get-clipboard chcp 850
Este archivo lo puedes usar para convertir de Windows a Ms-DOS código fuente que contenga caracteres de bloques (como “┘┌▄▀”). Podrías usar esto si hubieras escrito un programa de GW-BASIC o QB64 en el bloc de notas y tuvieras que convertir los acentos al formato original del PC.
@echo off rem this needs windows 10 or better rem Inspired by post from MigrationUser on ss64 rem https://ss64.org/viewtopic.php?f=2&t=350 chcp 65001 > nul clip chcp 850 >nul powershell get-clipboard chcp 65001