php输出的字符串编码和header头信息声明的编码不一致时输出乱码。

PHP程序开发中,编码问题一定困扰了不少人,比如:当我们需要输出GBK编码的字符串时,但不知道传过来的字符串是GBK编码还是UTF8编码,因此无法转换编码,这时我们需要一个能统一编码的函数。

使用PHP连接MS SQL Server数据库,查看了一下数据库的编码

SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')

返回为936,即GBK编码。

936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8

如果字段有中文,PHP文件设置编码为GBK2312,则取数据库信息时没有问题:

print_r($rs["客户编码"]);

如果PHP文件设置编码为utf-8,则会报告错误。

如果非要把php文件的编码设置为utf-8,则需要转换一下编码:

print_r($rs[mb_convert_encoding("客户编码","GBK","UTF-8")]);//打印记录数组

这样就没有问题了。

以上就是php 编码转换分析的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码