git 提交后中文字符会乱码

发布时间 2023-12-26 17:29:40作者: l_v_y_forever

转载自:https://blog.csdn.net/yilongchuan/article/details/92833077

最近发生那了一件怪事,当然菜鸡经常碰见怪事

本来一个.properties文件在idea里面commit的时候看了一下diff,没发现异常,但是提交到gitlab上发现.properties的所有中文字符都变成了 \xxxx 的ascii的编码。

 然后我在idea的show history中查看和上一版本的差异,发现这些中文字符没问题??!!

 

然后就是一顿的百度,bing

最后发现设置里面 transparent native-to-ascii conversion是选中的

然后网上有人这样解释:::

Transparent native-to-ascii conversion的意思是:自动转换ASCII编码。
他的工作原理是:在文件中输入文字时他会自动的转换为Unicode编码,然后在idea中发开文件时他会自动转回文字来显示。
这样做是为了防止文件乱码。。。

还有:::

取消勾选以后,看到到中文全都转成ASCII;2.其他团队成员拉取到的代码是ASCII;3.push到git上面是ASCII。也就是说比如有同事用的eclipse用中文写的备注,你这边编辑以后push会把原来中文的注释全都用ASCII覆盖,这个就是勾选以后造成的影响。。。

OK,大概意思就是这样,这个文件你虽然看起来没问题,但是你只要选中了它,他么他现在就是一个ASCII文件存储在你本地,但是git上的文件可不是这个格式,你可以尝试用notepad++打开这个本地的.properties文件,你会发现他没有中文,,

 

好原因说完了,怎么解决?

1.首先肯定是取消勾选Transparent native-to-ascii conversion,你会发现本地已经由中文字符变成了Ascii编码。

2.我肯定想撤回刚才的提交 推荐博文 https://blog.csdn.net/hanchao5272/article/details/79435730

3.将.properties文件回退到非ascii格式的文件(注意备份好)

4.balabalabala提交正常流程