正则里比较怪异的一个关于乱码的问题.

SysTem128 2006-08-26 12:44:40
<?php
echo preg_replace('/([{}\[\]!]*?)/i','','{![工位号]}>=( {![分机]}!={![手机]} )or{![登录密码]} == {![部门主管]}')."<br />";
//和
echo preg_replace('/[{}\[\]!]*?/i','','{![工位号]}>=( {![分机]}!={![手机]} )or{![登录密码]} == {![部门主管]}')."<br />";
//这样替换输出结果都是正确的
//工位号>=( 分机=手机 )or登录密码 == 部门主管
//但是
echo preg_replace('/[{}\[\]!]*?/i',' ','{![工位号]}>=( {![分机]}!={![手机]} )or{![登录密码]} == {![部门主管]}')."<br />";
//这样的输出结果是
// ?????? > = ( ???? = ???? ) o r ???????? = = ????????
// 注意空格
// 能告诉我这是为什么吗? 很郁闷地说
// 就事论事……表说我写的正则菜:)
// 现在我去试着转换下编码.
// Php 5.1.4
?>

...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
songxinxin 2006-08-28
  • 打赏
  • 举报
回复
echo preg_replace('/[{}\[\]!]/i',' ','{![工位号]}>=( {![分机]}!={![手机]} )or{![登录密码]} == {![部门主管]}')."<br />";
zeroleonhart 2006-08-28
  • 打赏
  • 举报
回复
Try iconv the string to utf-8 and then use preg_replace.
SysTem128 2006-08-28
  • 打赏
  • 举报
回复
这里只是将{}[]等字符替换掉.
和中文没什么关系呀!
很怪异的说……
「已注销」 2006-08-27
  • 打赏
  • 举报
回复
是不是因为中文是2字节 字符是1字节的原因```````

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧