Пакетный файл замены символов

Я пытаюсь выполнить пакетный скрипт с помощью командной строки Windows для преобразования некоторых символов, например:

É to Й
Ö to Ц
Ó to У
Ê to К
Å to Е
Í to Н
à to Г
Ø to Ш
Ù to Щ
Ç to З

без успеха. Это потому, что я использую программу, которая не поддерживает кириллический шрифт.

И у меня уже есть файл с этими словами, например:

ОБОГРЕВ ЗОНЫ  1
ДАВЛЕНИЕ ЦВЕТА 1
...
and so on...

Является ли это возможным?


person Davide Fraccaro    schedule 22.10.2014    source источник
comment
Вы используете юникод? или есть из расширенной таблицы ascii?   -  person npocmaka    schedule 22.10.2014
comment
для того, чтобы сделать стандартный вывод более читаемым в оболочке cmd: mode con cp select=855   -  person JosefZ    schedule 22.10.2014


Ответы (1)


Я предполагаю, что вы хотели бы преобразовать набор символов (псевдоним кодовой страницы) файла, чтобы вы могли открыть и прочитать его. Я предполагаю, что вы используете компьютер с Windows.

Допустим, ваш файл russian.txt и когда вы открываете его блокнотом, символы не имеют никакого смысла. Кодировка символов файла russian.txt, скорее всего, ANSI, а его кодовая страница — Windows-1251. Несколько слов о кодировке символов:

  • In ANSI one character is one byte long.
    • Different languages have different code pages: Windows-1251 = Russian, Windows-1252 = Western Languages (English, German, Swedish...), Windows-1253 = Greek ...
  • В UTF-8 английские символы имеют длину один байт, а неанглийские символы — два байта.
  • В Unicode все символы имеют длину два байта.
  • UTF-8 и Unicode не нуждаются в кодовых страницах.

Вы можете проверить кодировку, открыв файл в блокноте и нажав «Файл», «Сохранить как». В правом нижнем углу рядом с кнопкой Сохранить вы можете увидеть кодировку.

Погуглив, я нашел сайт, где вы можете сделать преобразование кодировки символов онлайн. Я не проверял, но вот адрес:

Я сделал скрипт (= небольшую программу), который меняет кодировку символов с любой комбинации ANSI и кодовой страницы на UTF-8 или Unicode или наоборот.

Допустим, у вас есть компьютер с английской ОС Windows и вы хотите преобразовать русский.txt (ANSI/Windows-1251) в UTF-8. Вот как:

  • Open this web-page and copy the script in it to the clipboard:
  • Создайте новый файл с именем ConvertCharset.vbs в той же папке, где находится russian.txt, скажем, C:\Temp.
  • Откройте ConvertCharset.vbs в блокноте (щелчок правой кнопкой мыши + редактирование) и вставьте.
  • Откройте CMD (кнопка Windows+R, cmd, Enter).
  • В окне типа CMD (нажмите клавишу Enter на каждом конце строки):

cd C:\Temp\ cscript ConvertCharset.vbs /InputCharset:Windows-1251 /OutputCharset:utf-8 /InputFile:russian.txt /OutputFile:russian_utf-8.txt

Теперь вы можете открыть russian_utf-8.txt в блокноте, и вы увидите русские символы в порядке.

Больше информации:

person Ciove    schedule 31.10.2014
comment
Да, я почти уверен, что мое решение для вас, потому что я проверил некоторые символы в вашем примере: десятичное значение É в Windows-1252 (западные языки) — 201 и такое же десятичное значение в Windows-1251 (рус.) соответствует Й. Если вы считаете мой ответ хорошим, проголосуйте за него, если нет, задайте мне вопрос, и я постараюсь ответить. - person Ciove; 03.11.2014