关于PHP的编码格式导致的乱码
实例:
下面PHP代码我们以GBK的格式进行保存:
<?php $string = "妳係我的老友"; // $string = iconv('gbk', 'utf-8', $string); var_dump($string);
然后我们访问
localhost/a.php
输出:
string(12) "���S�ҵ�����"
很明显乱码了,于是我们改变浏览器的解析方式,告知客户端使用gbk读取编码
header('Content-Type: text/html; charset=gbk');
就正常输出了;
当我们以 utf-8编码该PHP文件,则不会发生这个错误;
所以 文字编码格式与客户端读取该内容使用编码格式应该一致,否则乱码
浏览器默认是utf-8格式读取,所php文件使用的文件编码格式应当统一为utf-8
但是对于外面输出的参数,我们要不要将所有参数统一转换为 utf-8 呢?
我们试试 post 一个 gbk 的编码格式的csv文件,然后将其输出(浏览器以 utf-8 编码格式解析),验证 php 接收该参数的时候需不需要转码
输出乱码了
I can see a bigger world.