平台:ubuntu 18.04, CLion 2020.1
问题描述:使用windows从百度网盘上下载了一本书的c++源码,拷贝到ubuntu下用CLion打开,发现代码中的中文注释为乱码
0. 前期工作
因为我是在试了很多方案后才解决的问题,所以我不是很确定具体是那一部分起了作用,或者某一操作会不会对结果有影响。
这里记录的是我觉得对结果没有影响的一些操作。
- 更改系统编码方式:
首先,我的Ubunt已经是中文的了,如果不是中文的话,可以试着添加中文语言包
apt install language-pack-zh-hans*
然后,为了以防万一,我勾选了所有的中文编码。执行
dpkg-reconfigure locales
在zh_CN GB2312
、zh_CN.GB18030 GB18030
、zh_CN.GBK GBK
和zh_CN.UTF-8 UTF-8
前面打勾将其添加到系统(上图),然后系统语言选择zh_CN.UTF-8
(选择其他的应该也可以吧,如下图)
网上查出来,前三种编码方式的关系是
GB2312
∈GBK
∈GB18030
,但是为了以防万一嘛
- 如果可以的话,我觉得重启一下系统比较好
1. 正式工作
- 在
settings
的Eidtor->File Encodings中,把所有可以改编码的地方都改成UTF-8
PS:图片中的表格(就是写了/home/orz/……
的几行)开始的时候是没有的,成功了以后才会有的) - 点击
Help
中的Edit Custom VM OPtions。第一次点的话可能会弹出窗口,说是要创建一个名为clion64.vmoptions
文件(路径在个人文件夹下的.config里,我的是在~/.config/JetBrains/CLion2020.1
下面),点确定。文件末尾添加 -Dfile.encoding=UTF-8 ,然后重启idea。
- 打开会乱码的代码文件。在界面的右下角,点击
UTF-8
(也可能为其他的编码名字吧,反正我的是在LF
和4spaces
之间),跳出的菜单栏名为File Encoding
,选择GBK
(其他的GB2312
、GB18030
应该也可以吧)
- 最后在弹出的窗口中选择
Reload
。我没有选择Convert
,因为一选乱码就变成了????
,就算用vscode也不能正常显示中文了