Apagada docs

Aprendiendo a programar el pasado

Herramientas de usuario

Herramientas del sitio


es:bat:transcodificar_de_pc-850_a_ansi-windows

Transcodificar usando CHCP (windows 10 y superior).

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:

  • 437: Página de códigos norteamericana original del IBM-PC.
  • 850: Página de códigos “Multilingüe 1” de MS-DOS y las impresoras IBM proprinter.
  • 1252: Página de códigos “ANSI” (8859-1) de Windows, de 8 bits.
  • 65001: Página de códigos UTF-8 (Unicode), que usa 8 bits para los primeros 127 caracteres y una longitud variable para los demás.

Opción 1: De la página IBM 850 a "Windows Ansi" 1252

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

850-to-ansi.cmd
@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

Opción 2: De Windows Ansi a 850 de IBM;

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.

850-to-ansi.cmd
@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

Opción 3: De IBM 850 a Unicode UTF-8

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

850-to-ansi.cmd
@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

Opción 4: De Unicode Utf-8 a IBM 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.

850-to-ansi.cmd
@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
Este sitio web utiliza cookies. Al utilizar el sitio web, usted acepta almacenar cookies en su computadora. También reconoce que ha leído y entendido nuestra Política de privacidad. Si no está de acuerdo abandone el sitio web.Más información
es/bat/transcodificar_de_pc-850_a_ansi-windows.txt · Última modificación: 2024/09/21 12:26 por nepenthes