深圳网站建设培训机构,网站群建设存在的问题,wordpress评论点回复不刷新,学前端要多久目录 面试回答
知识扩展
Unicode 和 UTF-8 有啥关系#xff1f;
有了 UTF-8#xff0c;为什么要出现 GBK
为什么会出现乱码 面试回答 就像电报只能发出“滴”和“答”声一样#xff0c;计算机只认为 0 和1 两种字符#xff0c;但是#xff0c;人类的文字是多种多样的
有了 UTF-8为什么要出现 GBK
为什么会出现乱码 面试回答 就像电报只能发出“滴”和“答”声一样计算机只认为 0 和1 两种字符但是人类的文字是多种多样的如何把人类的文字转换成计算机认识的 0、1 字符呢这个过程同样需要通过字符编码。 字符编码Character encoding是一套法则使用该法则能够对自然语言的字符的一个集合如字母表或音节表与其他东西的一个集合如号码或电脉冲进行配对。 和摩尔斯电码功能类似上个世纪60年代美国制定了一套字符编码对英语字符与二进制位之间的关系做了统一规定这被称为 ASCII 码一直沿用至今。 由于 ASCII 只有 128 个字符虽然对于英文字符都可以表示了但是世界上还有很多其他的文字是没办法表示的所以需要一种更加全面的字符编码。 于是又出现了 Unicode 字符集常见的 Unicode Transformation Format 有UTF-7UTF-7.5UTF-8UTF-16以及 UTF-32,除此之外还有一些常用的中文编码有 GBKGB2312GB18030 等。 知识扩展 Unicode 和 UTF-8 有啥关系 Unicode 中文万国码、国际码、统一码、单一码是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码使得计算机可以用更为简单的方式来呈现和处理文字。 Unicode 备受认可并广泛地应用于计算机软件的国际化与本地化过程。有很多新科技如可扩展置标语言Extensible Markup Language简称XML、Java 编码语言以及现代的操作系统都采用 Unicode 编码。 Unicode 是一套通用的字符集包含世界上的大部分文字也就说Unicode 是可以表示中文的。 但是Unicode 虽然统一了全世界字符的编码但没有规定如何存储。 因为如果 Unicode 统一规定每个符号就要用三个或四个字节表示因为字符太多只能用这么多字节才能表示完全。一旦这么规定那么每个英文字母前都必然有二到三个字节是0因为所有英文字母在 ASCII 中都有都可以用一个字节表示剩余字节位置就要补充 0,。如果这样文本文件的大小会因此大出二三倍这对于存储来说是极大的浪费。 为了解决这个问题就出现了一些中间格式的字符集他们被称为通用转换格式即 UTFUnicode Transformation Format。常用的 UTF 格式与UTF-7UTF-7.5UTF-8UTF-16以及 UTF-32。 UTF-8 使用一至四个字节为每个字符编码UTF-16 使用二或四个字节为每个字符编码UTF-32 使用四个字节为每个字符编码 所以我们可以说UTF-8、UTF-16 等都是 Unicode 的一种实现方式。 有了 UTF-8为什么要出现 GBK 因为 UTF-8 是 Unicode 的一种实现所以他包含了世界上的所有文字编码他采用的是 1-4 字节进行编码。 对于那些排在前面优先纳入的文字可能就优先使用 1 字节、2字节存储了对于纳入的文字就要使用 3 字节或者 4 字节存储了。 正是因为 UTF-8 太全了所以那些晚一些纳入的字符在 UTF-8 中的存储所占的字节数可能就会多一些那他的存储空间要求就会很大。 对于常用的汉字在 UTF-8 中采用 3 字节进行编码但是如果有一种只包含中文和 ASCII 的编码的话就不需要使用 3 个字节可能 2 个字节就够了。 对于大部分网站来说基本都是只服务一个国家或者地区的比如一个中国的网站一般会出现简体字和繁体字以及一些英文字符很少会出现日语或者韩文的。 也是出于这样的考虑中国国家标准总局于 1981 年制定并实施了 GB 2312-80 编码即中华人民共和国国家标准简体中文字符集。后来厂商微软利用 GB 2312-80 未使用的编码空间收录 GB 13000.1-93 全部字符制定了 GBK 编码。 有了标准中文字符集如果是一个纯中文网站就可以采用这种编码方式这样可以大大节省一些存储空间的。 常用的中文编码有 GBKGB2312GB18030 等最常用的是 GBK。
GB23121980年16位字符集收录有 6763 个简体汉字682 个符号共 7445 个字符 优点适用于简体中文环境属于中国国家标准通行于大陆新加坡等地也使用此编码缺点不兼容繁体中文其汉字集合过少
GBK1995年16位字符集收录有 21003 个汉字883 个符号共 21886 个字符 优点适用于简繁中文共存的环境为简体 Windows 所使用向下完全兼容 gb2312向上支持 ISO-10646 国际标准所有字符都可以一对一映射到 unicode 2.0 上缺点不属于官方标准和 big5 之间需要转换很多搜索引擎都不能很好地支持 GBK 汉字。
GB180302000年32 位字符集收录了 27484 个汉字同时收录了藏文、蒙文、维吾尔文等主要的少数民族文字。 优点可以收录所有你能想到的文字和符号属于中国最新的国家标准缺点目前支持它的软件较少。 为什么会出现乱码
文件里面的内容归根到底都是由 0101 组成的至于 0101 的二进制码如何转成人们可以理解的字符串则是需要通过规定好的字符编码标准进行转换才可以。 我们把一串中文字符通过 UTF-8 进行编码传输给别人别人拿到这串文字之后通过 GBK 进行解码得到的内容就会是乱码。