ANSI:系统预设的标准文字储存格式。ANSI是American National Standards Institute的缩写。它成立于1918年,是一个自愿性的组织,拥有超过1300个会员,包括所有大型的电脑公司。ANSI专为电脑工业建立标准,它是世界上相当重要的标准。
  Unicode:世界上所有主要指令文件的联集,包括商业和个人电脑所使用的公用字集。当采用Unicode格式储存文件时,可使用Unicode控制字符辅助说明语言的文字覆盖范围,如阿拉伯语、希伯来语。用户在“记事本”中输入含有Unicode字符的文字并储存文件时,系统会提示你必须选取“另存为”中的Unicode编码,这些字符才不会被遗失。需要提醒大家的是,部分Windows 2000字型无法显示所有的Unicode字符。如果发现文件中缺少了某些字符,只需将其变更为其它字型即可。 
  Unicode big endian:在Big-endian处理器(如苹果Macintosh电脑)上建立的Unicode文件中的文字位元组(存放单位)排列顺序,与在Intel处理器上建立的文件的文字位元组排列顺序相反。最重要的位元组拥有最低的地址,且会先储存文字中较大的一端。为使这类电脑的用户能够存取你的文件,可选择Unicode big-endian格式。
  UTF-8:UTF意为通用字集转换格式(Universal Character Set Transformation Format),UTF-8是Unicode的8位元格式。如果使用只能在同类位元组内支持8个位元的重要资料一类的旧式传输媒体,可选择UTF-8格式。 

解决方案 »

  1.   

    如果大量使用 ANSI 文字,那么用 UNICODE 浪费存储空间,UTF-8 较节约。
    如果大量使用东亚文字等文字,那么用 UNICODE 反而较节约,UTF-8 较浪费。因为 UNICODE (基本上)总是用 2 字节记录一个字符,而 UTF-8 可能会用到 3 或者 4 个字节来存储一个字符。UTF-8 在网络上受到的支持较好。而 UNICODE 则相对要差一些,但现在也已逐渐改变。VS.NET 在内部处理时使用 UNICODE,在储存时缺省使用 UTF-8。
      

  2.   

    to  AhBian(阿扁)
    既然unicode都是2字节,UTF-8可能会用到3个甚至4个字节来存储一个字符,反而UTF-8在网络上受到的支持较好?按照常规应该是越规则越容易传输解析的啊。vs.net既然内部处理用的是unicode,为什么在存储的时候缺省是UTF-8呢? 看上去没有道理啊。
      

  3.   

    事实就是如此。因为在网络上大多是混合型文字的数据。UTF-8 存储 ANSI 字符时还是只用一个字节。
    譬如 XML 文件缺省的字符集也是 utf-8。然而.net 中的 String 类型均是 UNICODE,而源代码文件在保存是采用 UTF-8 格式。
    源代码文件保存为 UTF-8 格式,是因为代码文件中一般 ANSI 字符居多。UTF-8 采用 1 到 4 字节的可变长度来表示字符,对越常用的字符就采用越短的长度来表示。UNICODE 在使用 SURROGATE 时,也会达到 4 字节。但这种情况比较少见。
      

  4.   

    Unicode 编码方式却有多种,最常见的是UTF-8、UTF-16、UTF-32。一般我们所指的UNICODE就是UTF-16。
    UTF8与UTF16两者各有优点。
    UTF16是固长两字节。因为固定长度,所以性能上要比非定长的UTF8高。
    UTF8是非固长,最长为四个字节。大多数西欧语言的每个字符所需的字节少于两个。日语、朝鲜语和中文的每个字符通常需要三个字节。与UTF-16相比,在 UTF-8 中,只有亚洲文字的编码开销会比较大。 更多关于UNICODE的信息,可查看www.unicode.orghttp://developers.sun.com/dev/gadc/technicalpublications/articles/utf8.html
    看看这篇文章,UTF8的重要性,里面说得很清楚了。
    这里是我收集到的一些关于字符编码的资料,或许对你有用:http://61.145.120.8/kin/AbourCharSet/