于振海网——于振海的个人博客搜索

php中str_replace出现乱码原因分析

发布时间:2011年11月18日  更新时间:2024年5月28日
作者:未知  文章ID:499  浏览:

    乱码问题是汉字编码和str_replace的工作方引起的,因为一个汉字是占两个字节的,全角空格也相当于汉字一样占两个字节,一个区码,一个位码。不过位码和区码有重叠的部分。如以下代码:

<?php
/*
\xa1\xa1  =>  " " (中文全角空格)
\xcd\xa1  =>  "汀"
\xa1\xa3  =>  "。"  (中文全角句号)
\xcd\xa3  =>  "停"
*/

$str = "汀。";
echo str_replace(" ", "", $str);
?>;
    以上代码的输出结果是 "停" 字。因为str_replace是一个字节一个字节的对比,所以会出错。

发表评论  挑错  文章投稿  联系我
  • 上一篇:减少JavaScript和CSS文件的体积,有助于访问速度
  • 下一篇:高频ups输出50Hz的秘密
  • 【推荐文章】

  • 新中国成立70周年大阅兵儿童画

    新中国成立70周年大阅兵儿童画 ...

  • 70年代的陶瓷台灯和90年代的闹钟

    台灯是陶瓷的,很薄半透明的那种陶瓷。70年代产自博山,上面的金鱼和牡丹是手工绘制...

  • 2038年以后,在64位Windows中,PHP获取真实时

    最近无聊,考虑到2038年之后,PHP如何获取当前时间的问题。 比如把电脑时间改成2050...

  • 三个数得出6的振海解法

    利用加、减、乘、除、括号、三角函数、指数、对数、开方等方法,使算式结果等于6。 ...

  • 网站开发日记-20160221

    1.修复了清空回收站$dopost=='clear'中,$qstr变量最后多出一个逗号的bug。 2.优化了...

  • 昨天买了一块石头-20190416

    昨天从本地的石头市场买了一块石头,只花了几块钱。手掌大小,半透明,硬度很高,形...

  • 【最新文章】

  • 新中国成立70周年大阅兵儿童画
  • 得到一只1984年的英雄131金笔
  • 70年代的陶瓷台灯和90年代的闹钟
  • 2038年以后,在64位Windows中,PHP获取真实时
  • 三个数得出6的振海解法
  • 网站开发日记-20160221
  • 昨天买了一块石头-20190416
  • 得到一只2002年的全新库存英雄100金笔
  • 养了两只猫,黑色的奶牛猫叫招财,白色的异瞳
  • 我的金丝吊蝴蝶变红了,种子也是红的
  • 2015年过年
  • 泰山天街全景图
  • 20150313爬山
  • 于致远照片-20140618
  • 20140612于致远玩小推车