Я создал пакетный файл, который содержит символы в древнееврейскойКак исправить пакетный файл с древнееврейским шрифтом
ECHO אאאאא
при запуске результата является ╫É╫É╫É
, как я могу это исправить ?
Я создал пакетный файл, который содержит символы в древнееврейскойКак исправить пакетный файл с древнееврейским шрифтом
ECHO אאאאא
при запуске результата является ╫É╫É╫É
, как я могу это исправить ?
Похоже, вы закодировали свой командный файл с UTF-8, сохраненным без byte order mark (BOM) для Hebrew Letter Aleph с кодом Юникода 05D0.
Код партии, скопированный в кодированный UTF-8 файл без спецификации, изменяет кодовую страницу на UTF-8 (65001), прежде чем символы будут записаны в окно консоли.
@echo off
chcp 65001 >nul
ECHO אאאא
Вместо использования кодирования многобайтной UTF-8, было бы также возможно использовать кодирование однобайтного с code page 862, который содержит эту букву сопоставленного значения коды 80 (шестнадцатеричные, 128 десятичных).
@echo off
chcp 862 >nul
ECHO אאאא
Страница кодов 862 является страницей кодов OEM для иврита.
В консольных окнах обычно используются страницы OEM-кода. Если вы откроете окно командной строки и запустите в этом окне chcp
, вы увидите, какая кодовая страница по умолчанию установлена на вашем компьютере.
Но установка правильной кодовой страницы в пакетном файле в соответствии с кодировкой, используемой для командного файла, автоматически не означает, что буквы в иврите теперь отображаются корректно в окне консоли при выполнении командного файла.
Шрифт, используемый для окна консоли, также должен поддерживать кодовую страницу 862 соответственно ивритские буквы из таблицы Unicode.
Как я видел, еврейские символы отображаются неправильно в окне командной строки с по умолчанию настройки шрифта растровых шрифтов на мой английский ОС Windows 7 x64 машине, используя по умолчанию code page 850 в консольных окон, я нажал на значок на левой стороне заголовка окно командной строки, нажато в открывшемся меню на Свойства и выбрано Консола на вкладке Шрифт. Теперь буквы на иврите были отображены иначе, чем с Растровые шрифты, но все еще не правильно. Итак, Консола также не поддерживает ивритские буквы на моей машине. Затем я попробовал шрифт Lucida Console, но опять же буквы на иврите не отображались правильно. Другими словами, не из трех шрифтов, доступных на моей машине для окон консоли, можно использовать для отображения букв на иврите в окне консоли с помощью правильных глифов.
Прочтите это brief overview of Unicode на странице источника питания для текстового редактора UltraEdit, если вы ничего не знаете о кодировке текста.
Условия командной строки на самом деле не предназначены для Unicode. Выбрать в Панель управления Windows - регион и язык вкладка Административный. Там вы можете установить системный язык для программ, отличных от Юникода.Также есть ссылка на страницу справки, объясняющую, для чего предназначены эти настройки: - установка шрифта по умолчанию и кодовой страницы для однобайтового кодированного текста в Windows GUI (Windows-1255) и консольных окнах (OEM 862) с выбранным ивритом (Израиль).
Mofi, я не сделал этого help сейчас я получаю сообщение: «Система ECHOThe не может записать на указанное устройство». – shay
Да, с настройкой шрифта по умолчанию __Raster Fonts__ для окон консоли в первом примере с использованием кодированного командного файла с кодировкой UTF-8 появляется сообщение об ошибке: 'Система не может записать на указанное устройство. 'Эта ошибка может быть устранена только при использовании OEM 862 закодированный командный файл или выбор шрифта, такого как __Consolas__ или __Lucida Console__, или даже лучше моноширинный шрифт, поддерживающий ивритские символы из таблицы Unicode, а также из кода OEM-кода 862. Также можно использовать [кодовую страницу Windows-1255] (https: //en.wikipedia.org/wiki/Windows-1255) для пакетного файла и установите эту кодовую страницу в файле. – Mofi
см. Мой ответ здесь https://stackoverflow.com/questions/9321419/unicode-utf-8-text-file-gibberish-on-windows-console-trying-to-display-hebrew и процитировать «Шрифт-курьер» Новые поддерживающие иврит и могут быть добавлены в командную строку. По умолчанию шрифты - consolas, lucida, растровые, ни один из них не поддерживает иврит. Поэтому добавьте Courier New в командную строку. " – barlop
см. Мой ответ https://stackoverflow.com/questions/9321419/unicode-utf-8-text-file-gibberish-on-windows-console-trying-to-display-hebrew – barlop