php里面,我曾经也一直认为是2个字节,在学习的过程中,根本没有对字符编码这个玩意进行过了解,在前段时间也看到了其它人说是2个字节,但是使用strlen()或mb_strlen()检查一个汉字所占的大小,是3位!!!

如果这个时候使用substr()或mb_substr()切割汉字的话必定会出现乱码,这个时候你就需要了解到unicode了

      • -

英文字母:

  • 编码: GB2312, 字节数: 1
  • 编码: GBK, 字节数: 1
  • 编码: ISO-8859-1, 字节数: 1
  • 编码: UTF-8, 字节数: 1
  • 编码: UTF-16, 字节数: 4

中文汉字:

  • 编码: GB2312, 字节数: 2
  • 编码: GBK, 字节数: 2
  • 编码: ISO-8859-1, 字节数: 1
  • 编码: UTF-8, 字节数: 3
  • 编码: UTF-16, 字节数: 4
      • -
面试出个字符编码的题完全可以呀,感觉面试难度又提高了一截。

unicode这个业界标准好呀,基本上现在所使用的环境中都存在unicode,把世界上大部分的语言文字整理编码出来,电脑可以更简单的呈现和处理文字,大家不用烦恼自己看到的是乱码而厌烦了,文字以原始的方式显示

最新版本的unicode是2017年6月20号10.0.0

      • -
        参考资料:
  1. http://www.unicode.org
  2. http://www.unicode.org/standard/WhatIsUnicode.html
  3. https://zh.wikipedia.org/wiki/Unicode

标签: none

添加新评论