12
返回列表 发新帖
楼主: 尖c
收起左侧

[软件] 为什么notepad++打开这个这个txt有乱码

[复制链接]
随便注册
发表于 2014-6-1 12:05:01 | 显示全部楼层
本帖最后由 随便注册 于 2014-6-1 14:55 编辑

改软件默认字体呢,比如雅黑?推测是大字符集和编码问题。
TextPro打开是这样


fool那行最后那个字符,你显示的是EDA1A8EDBD9D,我按照UTF-8编码反推回去,得到D868DF5D,\ud868\udf5d,在http://javawind.net/tools/native2ascii.jsp?action=transform转换,就是那个字。但Unciode里查该字编码是2A35D,至于D868DF5D怎么来的就不知道了。反正不乱了大概是UTF-16

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
尖c
 楼主| 发表于 2014-6-2 11:04:20 | 显示全部楼层
我改了字体为雅黑等,都没有效果
EDA1A8EDBD9D是什么?怎么得到的?(我对编码之类的东西不太了解.)
怎么"按照UTF-8编码反推"?
notepad++怎么设置UTF-16?
我正为学习相关的知识而努力中
随便注册
发表于 2014-6-2 16:12:59 | 显示全部楼层
EDA1A8EDBD9D说了啊,你图里的,把\x去掉就是

EDA1A8EDBD9D转成二进制,八个一组分开
11101101 10100001 10101000   11101101 10111101 10011101
1110xxxx 10xxxxxx 10xxxxxx   1110xxxx 10xxxxxx 10xxxxxx

1110和10是车头和车厢,x代表货物。去1110和10,得11011000011010001101111101011101,其十六进制即D868DF5D,前面加上\u,就是\uD868\uDF5D

我也不知道这么做是对了,还是巧合,结合软件提示UTF-16 LE,以及双字节,猜测是UTF-16,并猜测软件把\uD868\uDF5D的二进制数字当作了原始Unicode编码,按UTF-8规则又给编码了一遍。其实\uD868\uDF5D在Unicode编码中不是字,是保留位置,\uD868\uDF5D是利用了保留位置的“代{过}{滤}理码对”。notepad++可能没想到要处理这么大范围的字符,发现没字可显示就把编码显示出来了。

==============

参考资料:

字符编码笔记:ASCII,Unicode和UTF-8 - 阮一峰的网络日志
http://www.ruanyifeng.com/blog/2 ... code_and_utf-8.html

Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

跟据上表,解读UTF-8编码非常简单。如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。

也有认为阮一峰这篇不对的
Windows 记事本的 ANSI、Unicode、UTF-8 这三种编码模式有什么区别? - 知乎
http://www.zhihu.com/question/20650946

代{过}{滤}理码对
字符编码 unicode 及其在javascript 中的使用 - ecalf - 博客园
http://www.cnblogs.com/ecalf/archive/2012/09/04/unicode.html

Unicode对应表

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
尖c
 楼主| 发表于 2014-6-10 21:47:52 | 显示全部楼层
随便注册 发表于 2014-6-2 16:12
EDA1A8EDBD9D说了啊,你图里的,把\x去掉就是

EDA1A8EDBD9D转成二进制,八个一组分开

那理论上有解决notepad++还有vim乱码的方法吗?
随便注册
发表于 2014-6-10 22:32:55 | 显示全部楼层
尖c 发表于 2014-6-10 21:47
那理论上有解决notepad++还有vim乱码的方法吗?

不知道,只能去这两个软件的地盘问问怎么设置。

记事本另存为ANSI后打开就不乱了,但由于这个文本是给软件用的不是给人看的,也许转了就不能用了,不过你可以试试。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-6-3 18:53 , Processed in 0.103550 second(s), 14 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表