记事本支持保存的四种编码
UTF-8文件的CMD编译
我们把一个记事本写的、UTF-8编码的.java文件放在cmd下使用javac命令编译:
确实乱码,因为人家支持的默认CHCP是936:
这是简体中文,Unicode(UTF-8)是650001。
| CHCP | 国家(地区)或语言 |
|---|---|
| 437 | 美国 |
| 708 | 阿拉伯文(ASMO 708) |
| 720 | 阿拉伯文(DOS) |
| 850 | 多语言(拉丁文 I) |
| 852 | 中欧(DOS) - 斯拉夫语(拉丁文 II) |
| 855 | 西里尔文(俄语) |
| 857 | 土耳其语 |
| 860 | 葡萄牙语 |
| 861 | 冰岛语 |
| 862 | 希伯来文(DOS) |
| 863 | 加拿大 - 法语 |
| 865 | 日耳曼语 |
| 866 | 俄语 - 西里尔文(DOS) |
| 869 | 现代希腊语 |
| 874 | 泰文(Windows) |
| 932 | 日文(Shift-JIS) |
| 936 | 中国 - 简体中文(GB2312) |
| 949 | 韩文 |
| 950 | 繁体中文(Big5) |
| 1200 | Unicode |
| 1201 | Unicode (Big-Endian) |
| 1250 | 中欧(Windows) |
| 1251 | 西里尔文(Windows) |
| 1252 | 西欧(Windows) |
| 1253 | 希腊文(Windows) |
| 1254 | 土耳其文(Windows) |
| 1255 | 希伯来文(Windows) |
| 1256 | 阿拉伯文(Windows) |
| 1257 | 波罗的海文(Windows) |
| 1258 | 越南文(Windows) |
| 20866 | 西里尔文(KOI8-R) |
| 21866 | 西里尔文(KOI8-U) |
| 28592 | 中欧(ISO) |
| 28593 | 拉丁文 3 (ISO) |
| 28594 | 波罗的海文(ISO) |
| 28595 | 西里尔文(ISO) |
| 28596 | 阿拉伯文(ISO) |
| 28597 | 希腊文(ISO) |
| 28598 | 希伯来文(ISO-Visual) |
| 38598 | 希伯来文(ISO-Logical) |
| 50000 | 用户定义的 |
| 50001 | 自动选择 |
| 50220 | 日文(JIS) |
| 50221 | 日文(JIS-允许一个字节的片假名) |
| 50222 | 日文(JIS-允许一个字节的片假名 - SO/SI) |
| 50225 | 韩文(ISO) |
| 50932 | 日文(自动选择) |
| 50949 | 韩文(自动选择) |
| 51932 | 日文(EUC) |
| 51949 | 韩文(EUC) |
| 52936 | 简体中文(HZ) |
| 65001 | Unicode (UTF-8) |
使用-encoding utf8编译
竟不能成功?
在网上搜了搜\ufeff,意思差不多,都是说到了utf-8与utf-8-sig编码的问题。感兴趣的可以阅读下面的文章,作者在PyCharm使用中遇到了这样的问题,看他是怎么处理的:推荐阅读
但这并不能解决我们的问题。
我在网上搜了cmd、\ufeff、utf-8-sig相关,没有相关的解决方案。
我就试了试把-encoding utf8改成-encoding utf8sig,并不行,似乎cmd并不支持这种编码。
解决办法
如果不幸碰到了,那就换成ANSI或者Unicode吧,我都试过,绝对OK……
或者就用IDE吧……
未解之谜
CMD到底能不能支持utf-8-sig编码呢?能不能处理\ufeff呢?
网上没搜到,如果读者有知道的还请不吝赐教!
来源:CSDN
作者:进阶的JFarmer
链接:https://blog.csdn.net/weixin_43896318/article/details/104579834