VSCode使用终端中文乱码
原因:
vscode编辑文本默认使用utf-8,但是windows的终端默认使用gbk(简体中文)编码。utf-8采用1-4位记录一个字符,其中中文采用3位。gbk采用两位记录一个中文字符。所以中文显示乱码。
解决方案:
- 先确认终端是中文编码,在终端输入
chcp
,若输出936
表示使用的是GBK
编码。其他语言对应的编码见下表:
点击查看编码表
下表列出了所有支持的代码页及其国家(地区)或者语言:
代码页 国家(地区)或语言
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)
65000 Unicode (UTF-7)
65001 Unicode (UTF-8)
————————————————
- 修改编码到utf-8(65001):
!! 注意:非常不建议长期修改windows系统的编码到utf-8,这虽然能长期解决终端中文乱码的问题,但是会导致其他使用gbk编码的文件无法正常打开。- 所以推荐使用临时修改编码的方式,在终端输入
chcp 65001
即可。终端重启后失效。 - 为了避免每次重启终端都要手动输入,可以将此代码添加到启动项目的脚本代码中。例如
JS
项目可以在package.json
中用以下方法实现,其他语言同理:"scripts": {"start": "chcp 65001 && electron-forge start",},
- 所以推荐使用临时修改编码的方式,在终端输入