悲剧了: sublime 编辑过程中文件乱码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
XIVN1987
V2EX    问与答

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

  •  
  •   XIVN1987 2017-05-09 11:37:47 +08:00 4409 次点击
    这是一个创建于 3078 天前的主题,其中的信息可能已经有所发展或是发生改变。

    文件原本是 编码,用 Sublime Text 3 + ConvertToUTF8 插件打开编辑,编辑过程中 sublime 突然报错说文件无法使用 编码保存,使用 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 写的编辑器编码也坑啊,太悲催了,,,

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

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

    看来 sublime 适合那种只需要 utf-8 编码的场景,,像我这种不得不用 GBK 编码的不得不舍爱啊!!!
    zhanglintc
        9
    zhanglintc  
       2017-05-09 16:15:24 +08:00
    @XIVN1987 #8 只能看个人咯, 我反正每次都等一下, 觉得还 OK.
    XIVN1987
        10
    XIVN1987  
    OP
       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
        11
    XIVN1987  
    OP
       2017-05-09 16:23:26 +08:00
    @zhanglintc
    可是万一哪天手快保存快了咋办??又没法 Ctrl+Z

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

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

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

    你这种情况, 已经乱码了, 然后还尝试修改了编码, 我也遇到过, 的确是无力回天了.
    XIVN1987
        13
    XIVN1987  
    OP
       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
        14
    zhanglintc  
       2017-05-10 10:34:27 +08:00 via iPhone
    @XIVN1987 学习了,多了个恢复的办法了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2496 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 00:02 PVG 08:02 LAX 17:02 JFK 20:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86