应该是 GBK 问题
我发布过一个库 https://github.com/dotnet-campus/EncodingNormalior/tree/master/EncodingUtf8AndGBKDifferentiater 用来判断文件是 Utf8 或 GBK 的
如何使用?可以安装 lindexi.src.EncodingUtf8AndGBKDifferentiater 库,然后通过 EncodingDifferentiater.DifferentiateEncoding 就能返回文件的编码以及可信度
在 UWP 中使用 GBK 的方法:win10 uwp 读取文本GBK错误
但这对作者大人来说都不是事,我猜是在纠结要不要支持的问题
其实不管怎么做,都没法保证准确率,最好的办法就是先识别本机的语言和地区,然后用相应的识别库来对比。但是就算这样,也有可能用户打开的文件就只是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,日语就不行了,得手动来。等我加个以另一种编码重新打开的功能吧

@JasonStein 大佬考虑给个搜寻框不,这么多内容可不好找
你看中间那个,会根据你的系统语言,优先推荐当前系统ANSI编码,如果是中文的话就是GB 3213。意思就是大部分情况下,大部分国家的用户都能在中间那里找到自己想要的。
厉害了这个交互细节
@lindexi 更厉害的是,如果像我这样电脑是英文,地区有中文的话,提示两个:

一个是1252一个是gbk
Closing this thread since v1.1.4.0 is released with "Auto Guess Encoding" feature.
Most helpful comment
https://github.com/JasonStein/Notepads/pull/342