正则替换出现乱码,求解

countstars 2005-07-27 12:32:48
$str = "我等这么久了,连一个内测号都没有!我看我还是乖乖玩剑侠一吧!剑侠2是掉我们的胃口哼~~讨厌死它了。";
$str = preg_replace("/(日)/", "[\\1]", $str);
echo $str;
...全文
155 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
countstars 2005-07-28
up
回复
countstars 2005-07-27
拆分成数组,处理后再连接起来
这个是什么意思?不能理解。
回复
zhiin1 2005-07-27
这样就行了!

<?php
$str = "我等这么久了,连一个内测号都没有!我看我还是乖乖玩剑侠一吧!剑侠2是掉我们的胃口哼~~讨厌死它了。";

function mb_replace($pattern, $replacement, $string, $sourceEncoding)
{
$string = mb_convert_encoding($string, "utf-8", $sourceEncoding);
$pattern = mb_convert_encoding($pattern, "utf-8", $sourceEncoding);
$replacement = mb_convert_encoding($replacement, "utf-8", $sourceEncoding);
$string = mb_ereg_replace($pattern, $replacement, $string);
return mb_convert_encoding($string, $sourceEncoding, "utf-8");
}

echo mb_replace("(日)", "[\\1]", $str, "gb2312"); //其中的"gb2312"与你网页的编码对应
?>
回复
xuzuning 2005-07-27
1、不要用正则表达式去匹配单个汉字
2、高版本php的mb_ereg_replace一样会匹配错误,应该是bug。该死的日本鬼子

建议拆分成数组,处理后再连接起来
回复
zhiin1 2005-07-27

哈哈 严重关注

居然用mb_ereg_replace都乱码!
回复
countstars 2005-07-27
顶!唠叨老大在么?
回复
aniude 2005-07-27
嘿嘿,自己做一个字库咯,,,,,,,,
回复
zairwolf 2005-07-27
这是对中文支持性不好造成的。同样关注这个问题。
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告