网上搜到的关于ANSI文本的解释

本文详细解析了ANSI与Unicode编码的概念、特点及其在文本存储、国际化处理中的应用,包括不同编码间的兼容性问题和如何选择合适的编码方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下文字来自"http://www.8844.com/default.php?mod=ask_detail&tid=528042":

编码指不同国家的语言在计算机中的一种存储和解释规范 ANSI与ASCII n最初,Internet上只有一种字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange, “美国信息交换标准码),它使用7 bits来表示一个字符,总共表示128个字符,后来IBM公司在此基础上进行了扩展,用8bit来表示一个字符,总共可以表示256个字符,充分利用了一个字节所能表达的最大信息 nANSI字符集:ASCII字符集,以及由此派生并兼容的字符集,如:GB2312,正式的名称为MBCS(Multi-Byte Chactacter System,多字节字符系统),通常也称为ANSI字符集。 UNICODE与UTF8,UTF16 n由于每种语言都制定了自己的字符集,导致最后存在的各种字符集实在太多,在国际交流中要经常转换字符集非常不便。因此,产生了Unicode字符集,它固定使用16 bits(两个字节)来表示一个字符,共可以表示65536个字符 n标准的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 n当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字符集的哪种编码保存的。软件一般采用三种方式来决定文本的字符集和编码: 检测文件头标识,提示用户选择,根据一定的规则猜测 最标准的途径是检测文本最开头的几个字节,开头字节 Charset/encoding,如下表: EF BB BF UTF-8 FE FF UTF-16/UCS-2, little endian FF FE UTF-16/UCS-2, big endian FF FE 00 00 UTF-32/UCS-4, little endian. 00 00 FE FF UTF-32/UCS-4, big-endian.

 

 

以下文字来自"http://hi.baidu.com/mycral/item/a95171eae0bfef3c87d9ded4":

ANSI文本是什么?

最近用到了一些关于文本读写操作的功能,对于ansi编码的文本和Unicode编码的文本有了深入的了解。

这里就列一列看看ansi文本到底是什么。

ANSI编码 (百科里面的)

  unicode和ansi都是字符代码的一种表示形式。
  为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个 字节来表示 1 个字符。比如:汉字 '中' 在中文 操作系统中,使用 [0xD6,0xD0] 这两个字节存储。
  不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。

  不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。

如果是英文或符号那么编码为1个字节,而且最高位为0,如果是中文那么最高位肯定为1,大小为2个字节。

由此看来,如果在我们的中文电脑中存储ansi的文本文件中如果有日语或者韩语的时候,有可能造成编码的冲突,也就是说我们不可能在记事本中用ansi编码存储中日韩的混合文字。电脑中的记事本是针对中文版系统开发的。如果想通用的话,那我们就得把txt文件存储成Unicode格式的文本文件。所以,如果想做国际化的东西,还是用Unicode方便。其实,现在的操作系统大部分都是用Unicode编码的,如果我们使用的是ansi编码,那么系统内部处理的时候还是得转换成Unicode,反而造成代码效率低了。还是用Unicode方便啊!

 

以下文字来自百度百科:

不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 当然对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ASNI编码与Unicode编码之间最大也最明显的区别。

ANSI码(American National Standards Institute),中文:美国国家标准学会的标准码。

  为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ANSI编码与Unicode(UTF-16)编码之间最大也最明显的区别。比如“A君是第131号”,在ANSI编码中,占用12个字节,而在Unicode(UTF-16)编码中,占用16个字节。因为A和1、3、1这4个字符,在ANSI编码中只各占1个字节,而在Unicode(UTF-16)编码中,是需要各占2个字节的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值