300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 正则表达式 – 为什么在正则不加模式修正符的时候 PHP去匹配的中文字符会是乱码的

正则表达式 – 为什么在正则不加模式修正符的时候 PHP去匹配的中文字符会是乱码的

时间:2019-08-18 03:23:34

相关推荐

正则表达式 – 为什么在正则不加模式修正符的时候 PHP去匹配的中文字符会是乱码的

后端开发|php教程

正则表达式,php,字符编码

后端开发-php教程

段子网源码,vscode 切换vue,ubuntu sscap,配置tomcat 80,sqlite存文件路径,可以发红包的营销插件,前端采用什么框架和库,我的世界红色爬虫,render() php,嘉兴短视频seo,手机版视频网站源码下载,网页模板源文件,h5横向滑动模板lzw

情况如下:

双轨直销系统源码下载,vscode开发苹果app,ubuntu安装微信,重启tomcat脚本,sqlite3 不存在,网页设计好就业吗,易企cms 调用数据库,数据库服务器价格,js 软键盘插件,开源的前端样式框架,python爬虫怎么用,php 获取域名,武汉seo服务,springboot相册,网页设计中标签的作用.,手机网站兼容性,java网页实时聊天,asp新闻发布网站模板,html5 css3 后台管理模板,制作一个登陆页面代码,cms管理系统是什么,晴天视频分享程序破解lzw

php 5.5.11

mac osx 10.9.2、win7、centOS 6.3

寻模板整站源码,ubuntu如何换中文,c爬虫 js函数,怎么php,开封seo品牌lzw

代码如下:

echo preg_replace(/[\s-]+/, -, 阿树)."\n";

测试结果如下:

Mac 乱码

windows、linux都正常

增加模式修正符后正常,如下:

echo preg_replace(/[\s-]+/u, -, 阿树)."\n";

查找资料,是这么说的:

请问:

u的意思就是将匹配的字符当作utf8吗,还有其他作用吗

我的代码是utf8,但是为什么只有mac(Unix)会乱码呢?

回复内容:

情况如下:

php 5.5.11

mac osx 10.9.2、win7、centOS 6.3

代码如下:

echo preg_replace(/[\s-]+/, -, 阿树)."\n";

测试结果如下:

Mac 乱码

windows、linux都正常

增加模式修正符后正常,如下:

echo preg_replace(/[\s-]+/u, -, 阿树)."\n";

查找资料,是这么说的:

请问:

u的意思就是将匹配的字符当作utf8吗,还有其他作用吗

我的代码是utf8,但是为什么只有mac(Unix)会乱码呢?

树的utf8表示是e6 a0 91。敏感的话看到这里就应该明白了。

第二个字节a0\n是一样的,从而被替换成了-,剩下左右两边的两个字节变成非法ASCII,显示成问号了,至于平台差异性,估计是所谓PCRE的问题吧,有兴趣可以钻进去查查

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。