首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

php 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...表达式后的数字太大 又查了资料 了解到可以使用修正模式”u” 让程序把后面当成unicode字符处理 于是改成了”/^[\x{4e00}-\x{9fa5}]+$/u” 测试成功 所以php下正则匹配中文的表达式是...“/^[\x{4e00}-\x{9fa5}]+$/u” 这个仅适用于utf-8编码

3.6K40

UTF-8编码

UTF-8 编码示例Unicode/UTF-8-character table (utf8-chartable.de)图片通过 UTF-8 编码表,我们可以看到中文字符 “一” 的 Unicode 代码点为..."U+4E00",UTF-8 编码结果为 "e4 b8 80",对中文字符 “一” 进行 UTF-8 编码,是如何得到 "e4 b8 80" 的呢?...UTF-8 使用 3 个字节表示常用的汉字,因此中文字符对应的字节序列格式为:"1110xxxx 10xxxxxx 10xxxxxx"于是中文字符 “一” 的 UTF-8 编码结果为 "11100100...虽然正则表达式检索并未考虑中文的多音字,但是由于中文的多音字数量不多,不少多音字还是同音不同调类型的多音字,所以大多数情况下正则表达式检索是还可以接受的。...---UTF-8 的 ASCII 字符只占用一个字节,比较节省空间,但是更多字符的 UTF-8 编码占用的空间就要多出1/2,特别是中文、日文和韩文(CJK)这样的方块文字,它们大多需要三个字节。

1.6K00

Unicode and UTF-8

绝大多数程序员都听说过 Unicode 和 UTF-8,但是清楚它们之间关系的人就不多了,关于这个问题,与其苍白的陈述它们的概念,不如举例子说明来得自然。 我前些天碰到一个需求:随机生成几个汉字。...i = 0; $i < 3; $i++) { $zh .= '&#'. rand(19968, 40869) . ';'; } echo mb_convert_encoding($zh, 'UTF...单单从上面一个例子还不足以说明问题,下面我们挑选一个「博」字深入说明一下: Unicode 因为我们编码是 UTF-8,所以就先看看「博」字的 UTF-8 编码是什么: <?...通常汉字用 UTF-8 表示时是三个字节,格式为「111XXXXX 10XXXXXX 10XXXXXX」,除掉标志位,把剩余对应位置上的数据抽取出来连接在一起,就得到了 Unicode code point...到底 Unicode 和 UTF-8 是什么关系?一句话:Unicode 是字符集;UTF-8 是编码。

88130

Unicode,GBK和UTF-8

但如果有人问你,“Unicode,GBK和UTF-8有什么区别?”, 你能自信地给他一句简短清晰的回答吗? 如果不能的话, 那还是看一下这篇文章吧....假如我们有四个数字,1,2,3,4要保存在计算机里, 如果约定了utf-8编码, 那么在内存中的表示则如下: 00000001 00000010 00000011 00000100 其他的编码规则有utf...这其实也不怪Windows, 因为这是在Unicode出现的早期设计的, 那时我们还没意识到UCS-2的不足, 而且UTF-8还没有被发明出来....后记 说了这么多, 现在让我们回到一开始的问题, 如果有人问你"Unicode,GBK和UTF-8有什么区别?”..., 我想你应该知道该怎么回答了吧: Unicode是 一种字符集, 而GBK和UTF-8都是编码, 因此Unicode和后两者不是一类事物, 是无法进行对比的.

1.5K20

VMware Workstation客户端 Centos系统 中文乱码 UTF-8字符无法正常显示

依稀记得是因为系统重装之后,Vmware软件重新安装,然后导入以前的虚拟机配置文件,就出现了中文乱码的问题。...尝试步骤 系统中文语言包 首先运行以下命令,查看当前系统的语言包中是否有中文语言包 locale -a |grep "zh_CN" ? ?...我从网上下载了新的镜像来安装虚拟机,开启之后也是一样的中文乱码。 那么基本可以排查是系统层面导致的问题。...我把目光转到了VM软件上来 尝试其他shell工具 我使用了putty这个开源简单的工具,然后就得到了正常的中文结果… 结论 应该是VM软件 在重装系统过程中遗留了一些配置文件,然后新安装的软件又版本等问题不一致...,导致丢失,中文乱码吧。

4.5K30

UNICODE,GBK,UTF-8

UNICODE,GBK,UTF-8 UNICODE,GBK,UTF-8     简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的...早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。...在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK都属于双字节字符集 (DBCS)。...这个标准用两个数来编码汉字和中文符号。第一个数称为“区”,第二个数称为“位”。所以也称为区位码。1-9区是中文符号,16-55区是一级汉字,56-87区是二级汉字。...如果他使用了0x80-0xff之间的字符,中文Windows又按照缺省的GBK去解释,就会出现乱码。

2.6K20

utf-8?GB2312?

Unicode、Ascall、GB2312、UTF-8等字符编码之间的关系,廖老师是这样说的: 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。...但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。...所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。...如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。 看完这些,顿时对这几个编码类型的来历明白了不少。...,对中文的处理还有很多问题,经常在Unicode和GB2312、utf-8这些编码上产生疑问,网上也有很多这方面的解决方案(如下图) 但都是可移植性不高的方案,后来用了5.x之后的pycharm版本后

1.8K90

ASCII,Unicode和UTF-8

比如,简体中文常见的编码方式是 GB2312,使用两个字节表示一个汉字,所以理论上最多可以表示 256 x 256 = 65536 个符号。 中文编码的问题需要专文讨论,这篇笔记不涉及。...五、UTF-8编码 互联网的普及,强烈要求出现一种统一的编码方式。UTF-8 就是在互联网上使用最广的一种 Unicode 的实现方式。...UTF-8 的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。...下面,还是以汉字严为例,演示如何实现 UTF-8 编码。...对于英文文件是ASCII编码,对于简体中文文件是GB2312编码(只针对 Windows 简体中文版,如果是繁体中文版会采用 Big5 码)。

1.1K130
领券