cmd中utf 8編碼的問題

2022-02-28 18:17:43 字數 2279 閱讀 3146

有時候我們需要使用cmd顯示某個utf-8編碼的文字,這時候就需要設定cmd的**頁為65100。

也就是chcp 65001這條命令。這樣設定可以臨時生效。

如何要永久生效,需要在登錄檔中修改。

hkey_current_user\console\%systemroot%_system32_cmd.exe

設定此路徑名為codepage項(dword32位值) ,值為十進位制 65100。

以下是一些字符集:我們常用的是預設的 936 簡體中文 和 65100 的 utf-8 。

1257 波羅的語

1256 阿拉伯語

1255 希伯來語

1254 土耳其語

1253 希臘語

1252 拉丁 1 字元 (ansi)

1251 西里爾語

1250 中歐語言

950 正體中文

949 朝鮮語

936 簡體中文(預設)

932 日語

874 泰國語

850 多語種 (ms-dos latin1)

437 ms-dos 美國英語

但是,切換為 utf-8 的**頁之後,又出來了新的問題。

這就讓英文不好的我們尷尬了。

當然,utf-8下的問題還沒完,雖然可以顯示 utf-8 編碼的文字了。但是在目錄的切換過程中,卻又出來了新的問題。

注意看圖中的游標, 兩個中文字元的時候,游標在第乙個字的後面一點,再繼續輸入幾個中文,游標越來越偏。這時候你還能好好的輸入命令嗎?別說大多都有完全主義+強迫症的朋友了,比如我。

可能你沒想到,我用cd退回上層目錄後,在再後面輸入了中文,輸入的中文字元我也不知道有沒有輸入進去。只知道返回一條:

the system cannot write to the specified device.

我輸入了什麼?中文呀。那為什麼會這樣?

細心的你可能還沒發現,上面這張圖和之前的上的字型有點不一樣。

是的,在輸入中文之前我還更改了字型:

我想問:難道點陣字型不支援中文顯示?如果不支援顯示的話為什麼上面那一行的「簡歷」兩個字能顯示呢?

為什麼?

附:從登錄檔設定 lucida console 字型 。

windows registry editor version 5.00

[hkey_current_user\console\%systemroot%_system32_cmd.exe]

"codepage"=dword:0000fde9

"windowsize"=dword:00180050

"fontsize"=dword:000c0000

"fontfamily"=dword:00000036

"fontweight"=dword:00000190

"facename"="lucida console"

最後:我希望國家趕快繁榮昌盛,然後那些錢多到用來支援國外企業,多到用來刷女主播……的人,施捨點給國產計算機行業做發展吧。

對中文的支援,還得靠國人自己呀。

cmd設定utf8編碼

在中文windows系統中,如果乙個文字檔案是utf 8編碼的,那麼在cmd.exe命令列視窗 所謂的dos視窗 中不能正確顯示檔案中的內容。在預設情況下,命令列視窗中使用的 頁是中文或者美國的,即編碼是中文字符集或者西文字符集。如果想正確顯示utf 8字元,可以按照以下步驟操作 1 開啟cmd.e...

UTF8工程編碼問題

問題描述 乙個基於jsp的web業務專案,頁面的charset宣告為utf 8,jb的工程也宣告為utf 8編碼,在利用乙個儲存各種區縣的js檔案的時候jsp頁面報告錯誤 沒有呼叫js中的任何方法,只是include該js進來就報錯,什麼 字元未終結 等等 利用jb開啟中文顯示不正確。問題解決 後來...

C MD5 32位加密 UTF 8編碼

專案開發過程中需要用到md5加密,最開始的使用使用加密方法 public static string ge 5 string str return ret 在一開始的測試過程中沒有出現問題,後來傳入的引數包含中文後,就出現問題了,經過排查返現encoding.default使用的是預設的編碼 gb2...