Notepads: [Bug]Chinese content disturbance/中文的文本文件打开乱码,notepad与notepad++都正常

Created on 29 Feb 2020  ·  18Comments  ·  Source: JasonStein/Notepads

Most helpful comment

All 18 comments

应该是 GBK 问题

我发布过一个库 https://github.com/dotnet-campus/EncodingNormalior/tree/master/EncodingUtf8AndGBKDifferentiater 用来判断文件是 Utf8 或 GBK 的

如何使用?可以安装 lindexi.src.EncodingUtf8AndGBKDifferentiater 库,然后通过 EncodingDifferentiater.DifferentiateEncoding 就能返回文件的编码以及可信度

在 UWP 中使用 GBK 的方法:win10 uwp 读取文本GBK错误

但这对作者大人来说都不是事,我猜是在纠结要不要支持的问题

See https://github.com/JasonStein/Notepads/issues/123

其实不管怎么做,都没法保证准确率,最好的办法就是先识别本机的语言和地区,然后用相应的识别库来对比。但是就算这样,也有可能用户打开的文件就只是utf-8。慢慢程序软件都转向utf-8了,这类问题就不会再出现了。

@JasonStein 作者大大,要不要加个 SaveWithEncoding 和 以某个编码 读取的功能?

系统自带的save/open dialog不支持添加extension,所以save with encoding不好做。但是我有想加入 以某个编码重新打开当前文本的功能,就像 VSCode一样。

@JasonStein 棒棒棒

其实好像改编码不需要改后缀名哇,还是以原文件保存,只是保存的时候就使用 utf8 了

哦哦 我的意思是 Win32那个文件保存框 UWP是没有权限魔改的,如果要做的话,就应该像notepad.exe那样在保存框的下面多一个选项,你自己选编码。

@JasonStein 我想了一个馊主意,也许咱通过给用户两个 Dialog 可以解决,一个给用户选编码,一个让用户选保存到哪,就可以解决

我之前想过,太丑了。。。所以就打算这样了。 毕竟Notepads面向的大多数用户,用不上这个功能。需要这个功能的人多半电脑里也有VSCode或者notepad++

@dunkeng 暂时你先去设置里选择ANSI 作为默认编码识别,重启app之后再打开你那些乱码的文件看看。

可以,打开这个文件没问题,但打开JIS的日文的就不行了,无论是UTF8还是ANSI
新建文本文档.txt

@dunkeng 是的,默认使用本机当前语言编码,中文系统的话就是gbk,日语就不行了,得手动来。等我加个以另一种编码重新打开的功能吧

image

@JasonStein 大佬考虑给个搜寻框不,这么多内容可不好找

你看中间那个,会根据你的系统语言,优先推荐当前系统ANSI编码,如果是中文的话就是GB 3213。意思就是大部分情况下,大部分国家的用户都能在中间那里找到自己想要的。

厉害了这个交互细节

@lindexi 更厉害的是,如果像我这样电脑是英文,地区有中文的话,提示两个:
image
一个是1252一个是gbk

Closing this thread since v1.1.4.0 is released with "Auto Guess Encoding" feature.

Was this page helpful?
0 / 5 - 0 ratings