php 编码转换分析

怪我咯
怪我咯asal
2017-07-11 16:55:331534semak imbas

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")]);//打印记录数组

这样就没有问题了。

Atas ialah kandungan terperinci php 编码转换分析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn