我是靠谱客的博主 奋斗咖啡,最近开发中收集的这篇文章主要介绍编码格式(ANSI,UNICDOE,UTF8,BOM),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

编码格式简介

ANSI:16384个字符。这就是ANSI字符标准。英文一个字节,中文两个字节

对于ANSI,不同的国家和地区制定了不同的标准,由此产生了GB2312(简体中文),BIG5(繁体中文),JIS(日文)等各自的编码标准。但不同的ANSI编码在不同语言之间是不兼容的,所以对于不同的操作系统之间文件的传输,或者在同样的操作系统下,源文件语言不同于OS的语言文件的传输,需要转换成UT8格式。

<wbr></wbr>

UNICODE: 使用两个字节对世界上几乎所有的语言进行编码(0x0000-0xFFFF),65536个字符,每种语言的代码段不同,两个字节(英文、中文都是两个字节)所表达的字符是唯一的,所以不同语种可以共存于文本中,解决国际化的问题

<wbr></wbr>

Unicode有两套标准,一套叫UCS-2(Unicode-16),用2个字节为字符编码,另一套叫UCS-4(Unicode-32),用4个字节为字符编码。

<wbr></wbr>

UTF8是Unicode一种压缩形式,英文A在unicode中表示为0x0041,老外觉得这种存储方式太浪费,因为浪费了50%的空间,于是就把英文压缩成1个字节,成了utf8编码,但是汉字在utf8中占3个字节,显然用做中文不如 ansi合算,这就是中国的网页用作ansi编码而老外的网页常用utf8的原因。


关于BOM

<wbr><wbr><wbr><wbr><wbr><wbr><a name="_Toc344107574">BOM</a>(Byte Order Mark)是一个字符(本义为"ZERO WIDTH NO-BREAK</wbr></wbr></wbr></wbr></wbr></wbr>

SPACE"),它表明UNICODE文本的UTF-16,UTF-32的编码字节顺序(高字节低字节顺序)和编码方式(UTF-8,UTF-16,UTF-32,其中UTF-8编码是字节顺序无关的)。

<wbr></wbr>

UCS规范建议我们在传输字节流前,先传输字符"ZERO

WIDTH NO-BREAK SPACE"。

这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。

<wbr></wbr>

UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。

如果接收者收到以EF BB BF开头的字节流,就是UTF-8编码。

<wbr></wbr>

UTF-8 no BOM 格式,没有带bom字符头。

<wbr></wbr>

最后

以上就是奋斗咖啡为你收集整理的编码格式(ANSI,UNICDOE,UTF8,BOM)的全部内容,希望文章能够帮你解决编码格式(ANSI,UNICDOE,UTF8,BOM)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部