ANSI、ASCII和UNICODE
|
|
有时候在网页上复制资料到记事本中,保存时会出现含以下文字的对话框。
"该文件含有unicode格式的字符,当文件保存为ANSI的文本文件时,该字符将丢失.要保存unicode请单击下面的取消然后从编码中选择一个unicode选项。继续吗?"
这说明源文件中含有Unicode字符(比如日文字符等一些特殊符号),在记事本中保存文件就会出现上面的提示。
可以尝试在记事本中选择“另存为”,然后选择“编码”下拉菜单中的选项为“Unicode”或者“UTF-8”。
如果不能解决,建议使用EmEditor或者UltraEdit等文本编辑器替代记事本。
ANSI和UNICODE是指两种编码,是不同国家的语言在计算机中的一种存储和解释规范,ANSI表示的字符远远小于UNICODE。
ANSI与ASCII
最初,Internet上只有一种字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange,美国信息交换标准码),它使用7bits来表示一个字符,总共表示128个字符,后来IBM公司在此基础上进行了扩展,用8bit来表示一个字符,总共可以表示256个字符,充分利用了一个字节所能表达的最大信息nANSI字符集:ASCII字符集,以及由此派生并兼容的字符集,如:GB2312,正式的名称为MBCS(Multi-Byte Chactacter System,多字节字符系统),通常也称为ANSI字符集。 ANSI也就是ASCII值为0-255之间的字符,当字符为ANSI时,存放于文件中占用的是一个字节。如果是非ANSI的呢,则占用两字节。
UNICODE与UTF8,UTF16
由于每种语言都制定了自己的字符集,导致最后存在的各种字符集实在太多,在国际交流中要经常转换字符集非常不便。因此,产生了UNICODE字符集,它固定使用16bits(两个字节)来表示一个字符,共可以表示65536个字符,标准的Unicode称为UTF-16(UTF:UCS Transformation Format)。后来为了双字节的Unicode能够在现存的处理单字节的系统上正确传输,出现了UTF-8,使用类似MBCS的方式对Unicode进行编码。Unicode字符集有多种编码形式,例如“连通”两个字的Unicode标准编码UTF-16 (big endian)为:DE 8F 1A 90 ,而其UTF-8编码为:E8 BF 9E E9 80 9A 。