今天的使用vscode打开java文件时出现乱码,原来vscode默认为UTF-8的编码打开,因此使用UTF-8的编码打开GBK肯定会出现乱码的


我点击了右下角UTF-8编码会弹出选择编码重新打开,我点击后选GBK就正常了。



这是典型的编码不匹配问题:编辑器默认按 UTF-8 解码文件,而你的文件实际是 GBK 存的,GBK 的中文字节按 UTF-8 解读就变成 �(绿色菱形问号)。
为什么不能自动识别? 因为 GBK 与其他编码的字节范围高度重叠,自动探测不可靠(比如一段 GBK 文本经常也能被当成 Latin-1/Big5 “合法”解读),所以编辑器只能猜一个默认值,不会贸然猜 GBK。
解决办法(编辑器基于 VS Code 内核):
- 临时修一次:点右下角状态栏的编码(显示 UTF-8 的地方)→ Reopen with Encoding(通过编码重新打开) → 选 GB2312 或 GBK(建议 GB18030,兼容性最好)。
- 永久设置:在
.vscode/settings.json里加:
```json
{
"files.encoding": "gb18030",
"files.autoGuessEncoding": true
}
```
这样这个工作区下所有文件默认按 GBK 系编码打开。
我现在想有没办法把GBK编码直接转成UTF-8的编码方式呢?
================================================
可以在vscode中选择”通过编码保存“,选择自己想要的编码就行了,比较方便。
