2015-05-27 19 views
1

我創建運行的結果時包含在希伯來語如何解決一個批處理文件與希伯來文字體

ECHO אאאאא 

字符的批處理文件是╫É╫É╫É

如何解決呢?

+0

看到我的答案https://stackoverflow.com/questions/9321419/unicode-utf-8-text-file-gibberish-on-windows-console-trying-to-display-hebrew – barlop

回答

3

看起來你已經編碼了你的批處理文件,UTF-8沒有byte order mark (BOM)保存爲Hebrew Letter Aleph與Unicode代碼值05D0。

字符被寫入到控制檯窗口之前以下複製到UTF-8編碼的文件,而不BOM將批料的代碼改變的代碼頁爲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表中的希伯來字母,太字體。

當我看到希伯來字符顯示錯誤的命令提示符窗口的默認字體在控制檯窗口中默認使用code page 850我的英文Windows 7 x64的機器上設置點陣字體,我點擊圖標上的標題欄的左側命令提示窗口,點擊在打開的菜單上屬性和選定索拉上標籤字體。現在顯示的希伯來字母與光柵字體不同,但仍不正確。所以Consolas也不支持我的機器上的希伯來字母。接下來我嘗試了字體Lucida控制檯,但希伯來字母再次顯示不正確。換句話說,我機器上用於控制檯窗口的3種字體中的非字體可用於在控制檯窗口中顯示帶有正確字形的希伯來字母。

閱讀本brief overview of Unicode文本編輯器UltraEdit的電源提示頁面上,如果你不知道文本編碼任何東西。

命令提示環境並不是真的爲Unicode設計的。在中選擇Windows控制面板 - 區域和語言選項卡管理。在那裏,您可以爲非Unicode程序設置系統區域設置。還有一個幫助頁面的鏈接,說明這些設置的用途 - 在選擇希伯來語(以色列)的Windows GUI(Windows-1255)和控制檯窗口(OEM 862)中爲單字節編碼文本設置默認字體和代碼頁。

+0

Mofi,我沒有幫助 現在我收到消息: 「ECHOThe系統無法寫入指定的設備。」 – shay

+0

是的,使用默認字體配置__Raster Fonts__用於控制檯窗口第一個使用UTF-8編碼批處理文件的示例導致錯誤消息:'系統無法寫入指定的設備.'只有使用OEM 862才能避免此錯誤編碼的批處理文件或選擇__Consolas__或__Lucida Console__等字體,或者更好地支持Unicode表格以及OEM代碼頁面862中支持希伯來字符的等寬字體。也可以使用[代碼頁Windows-1255](https: //en.wikipedia.org/wiki/Windows-1255)獲取批處理文件並將該代碼頁設置爲文件。 – Mofi

+0

在這裏看到我的答案https://stackoverflow.com/questions/9321419/unicode-utf-8-text-file-gibberish-on-windows-console-trying-to-display-hebrew並引用自己「The Font Courier新的支持希伯來語,可以添加到命令提示符。默認字體是consolas,lucida,raster,它們都不支持希伯來語,所以在命令提示符下添加Courier New。「 – barlop

相關問題