seanliang / ConvertToUTF8

A Sublime Text 2 & 3 plugin for editing and saving files encoded in GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS, etc.
https://github.com/seanliang/ConvertToUTF8
MIT License
900 stars 178 forks source link

如何避免 “utf-8编码” 自动转换成 “Western(Windows 1252)编码”? how to avoid auto convert utf-8 to Western(Windows 1252)? #82

Open daiziyi opened 6 years ago

daiziyi commented 6 years ago

环境: Sublime3 + ConvertToUTF8插件

您好!一个文档(含中英文)原来的编码是utf-8编码,对文档进行修改:增删中英文。 为什么文档自动转换成Western(Windows 1252)编码? 通过Set Encoding 为utf-8编码后 又自动转换成Western(Windows 1252)编码。

seanliang commented 6 years ago

麻烦提供一下控制台信息(按ctrl+`),最好能再提供一个能复现该问题的文档范例。

daiziyi commented 6 years ago

控制台信息:

Detected ASCII vs Undefined with 100% confidence
Detected ASCII vs Undefined with 100% confidence
Detected ASCII vs Undefined with 100% confidence
Detected ASCII vs Undefined with 100% confidence
unable to auto detect encoding for E:\test_alone.cpp, using fallback encoding Western (Windows 1252)
Detected GB2312 vs Western (Windows 1252) with 99% confidence

test_alone.cpp源文档 是utf-8编码的,打开后自动保存成Western(Windows 1252)编码。

但有些文档会发生,有些不会发生。

seanliang commented 6 years ago

从日志看,Sublime Text无法识别该文件编码,用Windows 1252这个默认编码打开。 本插件对文件进行分析,认为它的编码是GB2312,而且后续没有转码错误,说明GB2312打开没问题。 这个cpp确定是UTF-8编码么?是否里面中文字非常少?能否上个截图。

daiziyi commented 6 years ago

cpp文档是utf8编码的;中文字比较少,中英文比例 3: 97

default

daiziyi commented 6 years ago

sublime3 配置: default

ConvertToUTF8配置: default

seanliang commented 6 years ago

ST在检测不出编码时用的默认编码是fallback_encoding参数。如果原来的编码就是UTF8,那么本插件不会做操作。能否发一下乱码截图?

daiziyi commented 6 years ago

类似这样子的: default

seanliang commented 6 years ago

能否提供一份乱码的文本文件给我做测试?发我邮箱sunlxy at yahoo.com

wlbookwl commented 5 years ago

@seanliang

确实,我也遇到同样的问题。 image

我猜测是因为这个html文件(utf-8编码)内容只有两个汉字,有办法解决吗?

seanliang commented 5 years ago

@wlbookwl 这种比较难判断出来,目前只能通过File -> Reload with encoding解决。我看看是否加一个在编码未知的情况下强制弹出编码选择的选项。