PHP不支持Unicode意味着它无法直接处理包含非ASCII字符的文本。
- 内容介绍
- 文章标签
- 相关推荐
本文共计1210个文字,预计阅读时间需要5分钟。
PHP不支持Unicode是指PHP字符串不保存字符的编码信息,因此原生操作函数并不知道二进制数据应如何对应文本,只能假设一个字符对应一个字节。这样在处理英文等ASCII码时足够用,但PHP不支持Unicode这种说法并不准确。实际上,PHP支持Unicode,但需要正确配置和编码处理。
php不支持unicode是指PHP字符串不保存字符的编码信息,所以原生操作函数,并不知道二进制数据该如何对应文本,只能假设一个字符对应单个字节;这样在处理英文等ascii码时就够用,但对于中文等多字节字符,就会出错。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
php不支持unicode是什么意思?为什么说PHP不支持Unicode编码?
经常看到有说法:PHP不支持Unicode,或者说PHP在底层不支持Unicode。虽然我知道PHP编码很蛋疼,各种字符串处理函数非常不规范,但也还能显示中文,一直没弄明白这个不支持Unicode是什么意思。花了一些时间来梳理这方面的信息。
先从一个例子来引入:
一个PHP脚本如下,假设文件的编码是UTF-8:
//文件编码UTF-8 echo strlen("中文"); // 6 echo substr("中文",0,1) // 乱码 echo substr("中文",0,3) // 中
很奇怪吧,从上面看,似乎把一个汉字当成了3个字符。这就要从PHP对于字符串的存储上说起了。
本文共计1210个文字,预计阅读时间需要5分钟。
PHP不支持Unicode是指PHP字符串不保存字符的编码信息,因此原生操作函数并不知道二进制数据应如何对应文本,只能假设一个字符对应一个字节。这样在处理英文等ASCII码时足够用,但PHP不支持Unicode这种说法并不准确。实际上,PHP支持Unicode,但需要正确配置和编码处理。
php不支持unicode是指PHP字符串不保存字符的编码信息,所以原生操作函数,并不知道二进制数据该如何对应文本,只能假设一个字符对应单个字节;这样在处理英文等ascii码时就够用,但对于中文等多字节字符,就会出错。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
php不支持unicode是什么意思?为什么说PHP不支持Unicode编码?
经常看到有说法:PHP不支持Unicode,或者说PHP在底层不支持Unicode。虽然我知道PHP编码很蛋疼,各种字符串处理函数非常不规范,但也还能显示中文,一直没弄明白这个不支持Unicode是什么意思。花了一些时间来梳理这方面的信息。
先从一个例子来引入:
一个PHP脚本如下,假设文件的编码是UTF-8:
//文件编码UTF-8 echo strlen("中文"); // 6 echo substr("中文",0,1) // 乱码 echo substr("中文",0,3) // 中
很奇怪吧,从上面看,似乎把一个汉字当成了3个字符。这就要从PHP对于字符串的存储上说起了。

