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中文网其他相关文章!