php utf

WBOY
WBOY원래의
2016-06-06 19:58:11944검색

首先unicode里面 中文的区域的0x4e00-0x9fa5 在java或者js这种已unicode编码处理字符串的编程语言中 /^[\u4e00-\u9fa5]$/就可以判断一个字符串是否全部为中文 那么php中 字符的编码根据页面而定 页面是gbk的 字符编码就是gbk的 utf-8也同理 之前有一个表达式

首先unicode里面 中文的区域的0x4e00-0x9fa5
在java或者js这种已unicode编码处理字符串的编程语言中
/^[\u4e00-\u9fa5]+$/就可以判断一个字符串是否全部为中文

那么php中 字符的编码根据页面而定
页面是gbk的 字符编码就是gbk的 utf-8也同理
之前有一个表达式 “/^[\x80-\xff]+$/”
仅仅可以匹配是否含有非ascll字符
而汉字只是其中一个比较小的区域 不太精确

由于我的页面编码是utf-8的
于是把js的表达式搬到php中来
提示PCRE不支持”\u”和其他乱七八糟的一大堆东西

后来查资料了解到 php的正则有一种叫做字符组的东西
用\x{…}表示
于是把表达式改成”/^[\x{4e00}-\x{9fa5}]+$/”
又提示”\x”表达式后的数字太大

又查了资料 了解到可以使用修正模式”u” 让程序把后面当成unicode字符处理
于是改成了”/^[\x{4e00}-\x{9fa5}]+$/u” 测试成功

所以php下正则匹配中文的表达式是 “/^[\x{4e00}-\x{9fa5}]+$/u”
这个仅适用于utf-8编码

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.