灵异的编码事件,niu人帮忙解释了一下

新建记事本,只输入 “停” 字或者“停止”两个字,保存关闭,重新打开,就会乱码。但是如果汉字输入多了,就不会出现乱码了。。奇迹啊。如果在新建立的文本里只输入“联通”,再如此操作,也会出现该情况。。在xp里出现的是一个口字。。在win7里出现的是啥子都没的。。

 

后来测试了下,记事本里填写好以上提及的几个字符后,点另存为,如果选择编码为“ANSI”,再保存的话,就要变成一个“口”字。如果选择两个“unicode”,再保存的话,则是正常的,如果选择最后一个“utf-8”,再保存的话,就会啥都不出现。。

 

具体来说,应该是文件进行保存的时候出现的问题。

 

————————————————————

刚才某位牛人给我说了下。。。

 

 

Unicode big endian 和 Unicode 都是 Unicode 编码。
Unicode 是 Little-Endian。
big endian 和 little endian 不同在于 连续的4个字节(4 bytes) 变成无符号整数时的方法(或者说4个字节的“解释”次序)。

例如:
二进制4个字节依次为 00001101 00000110 10000000 00000011
十进制值:13, 6, 128, 3
Little-Endian = (13 * 256 * 256 *256) + (6 * 256 *256) + (128 * 256) + 3  = 218529795
Big-Endian = (3 * 256 * 256 *256) + (128 * 256 *256) +     (6 * 256) + 13 = 58721805

大多数 PC, VAX 用 Little-Endian
SUN SPARC,PowerPC, IBM 370,Motorola 68000 系列用Big-Endian

记事本保存的Unicode文件,若给Big-Endian 计算机用则存Unicode big endian,给PC, VAX 用,则选 Unicode。

UTF-8 是 Unicode 传送格式,有的网站服务器用UTF-8,这时要存UTF-8。

ANSI 只能用于西文ASCII码。

大多数情况下,中文存为 Unicode,英文(包括一般的计算机程序)存为ANSI。

如果从网页上用粘贴方法贴到记事本,注意存放的编码要与原来网页上编码相同(字看上去不是乱码就对了),大多数情况下,中文存为 Unicode,英文存为ANSI。

原文地址:https://www.cnblogs.com/shlcn/p/2112866.html