找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1602|回复: 1

[教程] GBK编码PHP脚本导致语法错误(Zend Multibyte)

[复制链接]
发表于 2013-4-10 10:25:18 | 显示全部楼层 |阅读模式 来自 广东省湛江市
GBK环境下如下php代码:会引发php的语法错误,如何解决?
            这个是因为, 在GBK环境下, "玕"的编码是"0xab 0x5c, 所以, 又是一个'5c'引发的问题..
            一般来说, 还是建议大家用unicode作为代码文件的字符集, 如果要使用GBK, 再主动转换下.
            不过, 就问题说问题, 如果你的脚本非要GBK编码, 那怎么避免这个问题呢?
            从PHP5.3开始, PHP引入了Zend Multibyte来支持多字符集编码. 对于上面的代码, 我们修改如下:
            <?php
            declare(encoding='cp936');
            echo('洪仁玕');
            ?>
            然后, 在php.ini中配置:
            mbstring.internal_encoding=cp936
            或者通过如下命令运行PHP:
            $php -dmbstring.internal_encoding=cp936 test.php
            这样, PHP就会以cp936编码方式来执行test.php了. 关于Zend Multibyte的更多信息请参看:PHP: what is &ndash;enable-zend-multibyte configure option for?, PHP declare
            PS, 我在试验PHP5.4 RC1的时候, 发现了一个BUG, PHP 5.4 不能正确的转换GBK编码到UTF8编码, 不过现在我已经修复. 大家如果遇到这个问题, 请关注马上要发布的PHP5.4 RC2即可

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2013-4-10 17:23:49 | 显示全部楼层 来自 北京市
嗯,总结的很好,不错怎么有个扣扣表情是什么情况哈

评分

参与人数 1金币 +5 收起 理由
抢楼评分专号 + 5 很幸运,你获得了抢楼奖励!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-4-27 02:09 , Processed in 0.042438 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表