cmd中utf-8编码的问题
有时候我们需要使用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 的代码页之后,又出来了新的问题。
首先是命令的返回信息变为英文的了。比如对比一下与之前的提示:活动代码页 和 Active code page 。
这就让英文不好的我们尴尬了。
然后接着的问题是,大家继续对比上图,我的输入法状态是中文五笔,可是依然不能输入中文。有网上说是因为系统没有启动 conime.exe 进程,我下载了这个进程,放在相应的目录,无论是通过点击还是启动 cmd 都没有把这个进程运行起来,始终没有解决方案,只能换回 936 ,才能输入中文。哪位高手知道如何解决,愿留言相告,感激不尽。
当然,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"
最后:
我希望国家赶快繁荣昌盛,然后那些钱多到用来支持国外企业,多到用来刷女主播……的人,施舍点给国产计算机行业做发展吧。
对中文的支持,还得靠国人自己呀。