php设置字符串编码格式

  • 来源:网络
  • 更新日期:2020-08-13

摘要:php设置字符串编码格式的方法就是在代码的开始处添加一行代码为“header("Content-Type: text/html;charset=utf-8");”即可。推荐:《PHP视频教程》php 设置字符编码为utf-8

php设置字符串编码格式的方法就是在代码的开始处添加一行代码为“header("Content-Type: text/html;charset=utf-8");”即可。

推荐:《PHP视频教程》

php 设置字符编码为utf-8

在代码开始出加入一行:

header("Content-Type: text/html;charset=utf-8");

相关介绍:

PHP 字符串的本质

引用 PHP 文档的解释:

PHP 中的 string 的实现方式是一个由字节组成的数组再加上一个整数指明缓冲区长度。并无如何将字节转换成字符的信息,由程序员来决定。字符串由什么值构成没有限制,包括值为 0 的字节可以出现在字符串的任何位置。

PHP并不特别指明字符串的编码,那字符串到底是怎样编码的呢,这取决于程序员。字符串会按照 PHP 文件的编码来对字符串进行编码。比如你的文件编码是 GBK,那么你代码内容都是 GBK 的。

补充二进制安全这个概念,其值为 0 (NULL)的字节可以处于字符串任何位置,而 PHP 的部分非二进制函数底层是调用的 C 函数,会把 NULL 后面的字符忽略。

只要 PHP 的文件编码是能兼容 ASCII 的,那么字符串操作就可以很好的被处理。但是字符串操作本质上还是 Native 的(不管文件编码是什么),所以在使用的时候需要注意:

某些函数假定字符串是以单字节编码的,但并不需要将字节解释为特定的字符。比如 sbustr() 函数。

很多函数是需要显示的传递编码参数,不然会从 PHP.INI 文件中获取默认值,比如 htmlentities() 函数。

还有一些函数和本地区域有关,这些函数也只能是单字节操作的。

一般情况下,虽然 PHP 内部不支持 Unicode 字符,但是支持 UTF-8 编码,绝大部分情况下不会有什么问题,但是下列的情况可能就处理不了了:

非 UTF-8 编码字符串如何进行转换

一个 UTF-8 编码的网页,但是用户在提交表单的时候,可能使用 GBK 的编码(不遵守 meta tag)

一个 UTF-8 编码的 PHP 文件,使用 strlen("中国") 返回的是 6,而不是实际的字符数(2)

那么如何解决该问题呢? PHP 提供了 mbstring 扩展 !