关于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 接收该参数的时候需不需要转码

 输出乱码了

 

posted @ 2021-04-19 18:02  许伟强  阅读(111)  评论(0编辑  收藏  举报