utf-8是unicode的一个新的编码标准,其实unicode有过好几个标准.
我们知道一直以来使用的unicode字符内码都是16位,它实际上还不能把全世界的所有字符编在一个平面系统,比如中国的藏文等小语种,所以utf-8扩展到了32位,也就是说理论在utf-8中可容纳二的三十二次方个字符.UNICODE的思想就是想把所有的字符统一编码,实现一个统一的标准.big5、gb都是独立的字符集,这也叫做远东字符集,把它拿到德文版的WINDOWS上可能将会引起字符编码的冲突....
早期的WINDOWS默认的字符集是ANSI,Notepad.exe生成的纯文本就是这种字符集.

解决方案 »

  1.   

    utf-8是不等幅编码,即每字符可能要1到3个字节,而unicode是两字节的,他们是怎么一回事?
    在notepad.exe中输入的汉字以那种字符集编码存储的?
      

  2.   

    notepad中输入的汉字是本地编码,如果你是简体windows,就是gb编码,如果你是繁体windows,就是big5编码,utf-8和unicode关系不是很大,都属于想统一但是统一不了的编码。
      

  3.   

    UTF-8标准就是Unicode(ISO10646)标准的一种变形方式,UTF的全称是:Unicode/UCS Transformation Format,其实有两种UTF,一种是UTF-8,一种是UTF-16,不过UTF-16使用较少,其对应关系如下:在Unicode中编码为 0000 - 007F 的 UTF-8 中编码形式为: 0xxxxxxx 
    在Unicode中编码为 0080 - 07FF 的 UTF-8 中编码形式为: 110xxxxx 10xxxxxx
    在Unicode中编码为 0000 - 007F 的 UTF-8 中编码形式为: 1110xxxx 10xxxxxx 10xxxxxx你可以去http://www.unicode.org 参考详细的标准。所以它们实际上就是一样的东西,UTF-8的编码目的是这样的:UNICODE的编码对于正常的拉丁语系来讲是成倍的浪费,而UTF-8使得一般的拉丁语系的文件不需转换就是符合UNICODE标准的了,而且不是拉丁语系的文字编码也很容易就可以定位在正确的边界上,大家可以注意,只需从每个字节前两位就可以分辨出它所属的位置。BIG5、GB2312等均属于独立的字符集,就象楼上的讲的一样。用NOTEPAD生成的纯文本文件如果就是拉丁(罗马)文字的话,可以说就是UTF-8的文件了!但要是含有中文(GB/BIG5)或日文等,就要具体看你用的是什么平台了,一般来说它是会存成本地字符集的,但在NT/2000内部是可以直接支持UNICODE的。