悲剧了: sublime 编辑过程中文件乱码

2017-05-09 11:37:47 +08:00
 XIVN1987

文件原本是 GB2312 编码,用 Sublime Text 3 + ConvertToUTF8 插件打开编辑,编辑过程中 sublime 突然报错说文件无法使用 GB2312 编码保存,使用 UTF-8 编码保存,,然后文件就乱码了,,用 UTF8 和 GBK 编码打开都是乱码,,请问这种情况怎么恢复??

UTF-8 编码打开:±È½ÏÆ÷Õý¶ËÄÚ²¿»ù×¼µçѹ = 0.30+0.15*[0..3]

GBK 编码打开:卤脠陆脧脝梅脮媒露脣脛脷虏驴禄霉脳录碌莽脩鹿 = 0.30+0.15*[0..3]

正确内容:比较器正端内部基准电压 = 0.30+0.15*[0..3]

都说 Python 编码坑,,没想到 Python 写的编辑器编码也坑啊,太悲催了,,,

3765 次点击
所在节点    问与答
14 条回复
zj9819
2017-05-09 11:59:56 +08:00
Sublime Text 在编码和换行符方面还挺坑的…试下 notepad++或者 beyondcompare 呢,后者切换编码很方便,试试看有没有救…
lneoi
2017-05-09 12:04:59 +08:00
因为编码问题 弃用 sublime 了 转投 vscode
zhanglintc
2017-05-09 13:19:22 +08:00
根据我的经验来看,已经无法恢复了。

Sublime+utf8 插件的话,要注意保存的时候点慢一点。因为我发现每次点击保存后,编码都要重新识别和载入一次。这个过程中再次点击保存很大可能出现你说的乱码情况...
imn1
2017-05-09 13:44:48 +08:00
11 个汉字变 22 个汉字,用 utf-16 be/le 各打开试试
lwbjing
2017-05-09 13:55:56 +08:00
以前在 win 下面经常这样,后面换了 os x 下貌似没怎么碰到了
ETiV
2017-05-09 15:00:11 +08:00
文件名改成.txt 然后丢 chrome 里试试
浏览器换编码方便些
Ouyangan
2017-05-09 15:12:04 +08:00
扔到 jetbrains 家的 IDE 中试试 ,编码不对它会提示 convert,或者 reload ,很爽
XIVN1987
2017-05-09 16:12:43 +08:00
@zhanglintc
感觉还是换个支持直接打开 GBK 编码的编辑器吧,,像 ConvertToUTF8 这种打开、编辑、保存都要在后端转换编码的方法感觉不太安全,,,
其他问题都能忍,,这种会破坏文件的 bug 绝对不能忍,,整个文件的中文注释都丢掉了

看来 sublime 适合那种只需要 utf-8 编码的场景,,像我这种不得不用 GBK 编码的不得不舍爱啊!!!
zhanglintc
2017-05-09 16:15:24 +08:00
@XIVN1987 #8 只能看个人咯, 我反正每次都等一下, 觉得还 OK.
XIVN1987
2017-05-09 16:15:56 +08:00
@ETiV
@Ouyangan
文件现在的编码既不是 GBK,,也不是 UTF-8,,其他编码我也从来没用过,,想不出来会是什么编码

用 chardet.detect()检测文件编码,,结果是 ASCII,,不知道怎么办了!!
In [31]: chardet.detect('SWM1000.h')
Out[31]: {'confidence': 1.0, 'encoding': 'ascii', 'language': ''}
XIVN1987
2017-05-09 16:23:26 +08:00
@zhanglintc
可是万一哪天手快保存快了咋办??又没法 Ctrl+Z

而且你也说了没有办法恢复,,整个文件就毁了!!

数据安全第一位,,毁数据不能忍,,就算概率低也还是要未雨绸缪啊,,不然等数据真乱了后悔就迟了!!
zhanglintc
2017-05-09 16:27:03 +08:00
@XIVN1987 #11 诶, 不对, 如果发现得早, 是可以 Ctrl + Z 的.

就是我用的时候都会看一下, 如果中文显示正常, 那么保存的时候也 OK, 不会乱码. 只是保存后可能要等一下, 等它从乱码状态恢复到中文状态. 这个时候如果点快了乱码了, 及时 Ctrl + Z 是可以恢复的.

你这种情况, 已经乱码了, 然后还尝试修改了编码, 我也遇到过, 的确是无力回天了.
XIVN1987
2017-05-10 09:47:47 +08:00
@zhanglintc

问题解决了,,原来在 CoverteToUTF8 的 README.zh_CN.md 文件里就有解决方法,如下:

* 问:我的文件被保存为 UTF-8,而且变成了乱码,要如何恢复?

答:请打开这个文件,并确认它的编码是 UTF-8,然后选择菜单项目 File > Save with Encoding > Western (Windows 1252),关闭再重新打开该文件即可。


亲测有效,,这下可以放心继续使用 sublime 了 O(∩_∩)O~~
zhanglintc
2017-05-10 10:34:27 +08:00
@XIVN1987 学习了,多了个恢复的办法了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/360064

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX