文件chinese.php本身是utf8编码。
chinese.php
<?php
define('l', "<br />\n");
$f = $_REQUEST['f'];
function_exists($f) || die("Function $f not exists");
$f();
//========================================
function test1() {
header("Content-type: text/html; charset=gbk");
$finalStr = '中国,3';
$finalStr = iconv('UTF-8', 'GBK', $finalStr);
echo $finalStr . l;
$finalStr = str_replace(',', ',', $finalStr);
echo $finalStr . l;
}
//========================================
//========================================
function test2() {
header("Content-type: text/html; charset=utf-8");
$finalStr = '中国,3';
echo $finalStr . l;
$finalStr = str_replace(',', ',', $finalStr);
echo $finalStr . l;
}
//========================================
//========================================
function test3() {
header("Content-type: text/html; charset=utf-8");
$finalStr = 'chinese,3';
$finalStr = iconv('UTF-8', 'GBK', $finalStr);
echo $finalStr . l;
$finalStr = str_replace(',', ',', $finalStr);
echo $finalStr . l;
}
//========================================
?>
1.测试一
http://localhost/research/chinese.php?f=test1
中国,3
中国锛?
2.测试二
http://localhost/research/chinese.php?f=test2
中国,3
中国,3
3.测试三
http://localhost/research/chinese.php?f=test3
chinese,3
chinese,3
4.总结
根据以上的测试,可以得出如下的结论:
function test1:
由于刚开始"中国,3"是utf8编码,且里面的内容含有中文,后面通过iconv转换成了gbk编码,而str_replace(',', ',', $finalStr);中,是全角逗号,可以理解为中文,而且是utf8编码的中文,由于”中国,3“已经转换成了gbk编码,全角逗号是utf8编辑,因此替换的时候出现了乱码。
function test2:
“中国,3”与“,”均是utf8编码,因此进行str_replace操作后没有导致乱码。
function test3:
“chinese,3”是数字、字母及,(逗号),不管转换成什么编码还是原来的内容,尽管str_replace(',', ',', $finalStr);中是全角逗号,可以理解为中文,但是由于”chinese,3“中没有中文,所以替换后没有导致乱码,只能这样理解了。
PHP中字符串替换时导致的乱码
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
MongoDB之PHP的使用(GridFs)
爱在拜城_sunbea
2018-08-27 20:02:39
mongodb php之limit查询技巧
爱在拜城_sunbea
2018-08-27 20:02:03
使用WampServer搭建本地PHP环境,绑定域名,配置伪静态
stoneson
2018-08-27 19:48:49
关于下载PHP时候遇到的分类
zcy6675
2018-08-27 19:48:04
微信网页开发常用功能封装
m249005779
2018-08-27 19:47:09
ThinkPHP微信JSSDK的使用
m249005779
2018-08-27 19:47:09
composer
m249005779
2018-08-27 19:47:09
在homestead下创建laravel/lumen项目
雅希
2018-08-27 19:45:07
Windows下安装homestead常见问题详解
雅希
2018-08-27 19:45:04
小白学习laravel/lumen(一)前言
雅希
2018-08-27 19:45:04
Visual Studio《加载此属性页时出错》的解决办法[转]
lesen
2018-08-27 19:44:39
通过WMI获取主板信息
lesen
2018-08-27 19:44:37
24小時熱門文章
-
再谈23种设计模式(3):行为型模式(学习笔记)
-
Power Automate Desktop 安装完,登录后老是提示one driver 错误
-
微前端学习笔记(4):从微前端到微模块之EMP与hel-micro方案探索
-
微前端学习笔记(1):微前端总体架构概述,从微服务发微
-
985 硕士程序员,空窗 4 个月没有 Offer!
-
一文搞懂 Spring 循环依赖
-
赛博斗地主——使用大语言模型扮演Agent智能体玩牌类游戏。
-
VScode右键打开(添加到右键)
-
记一次 .NET某工控视觉自动化系统 卡死分析
-
WindowsServer--SQL Server搭建主从同步实现读写分离 - 事务性分发