UTF-8编码时如何把中文和各种特殊标点符号当作长度为2
Jun 06, 2016 pm 08:49 PM
这标题有点二。。。不知道怎么描述,将就着看吧。
注册用户时 经常见到的长度限制是:
中文的话可以输入12个,英文的话可以输入24个。
这在PHP要怎么验证呢?
UTF-8编码时
用strlen一个中文的长度是3。
用mb_strlen一个中文的长度是1。
回复内容:
这标题有点二。。。不知道怎么描述,将就着看吧。
注册用户时 经常见到的长度限制是:
中文的话可以输入12个,英文的话可以输入24个。
这在PHP要怎么验证呢?
UTF-8编码时
用strlen一个中文的长度是3。
用mb_strlen一个中文的长度是1。
看来你们都不知道 有个函数名叫 mb_strwidth
UTF-8 编码的字符可能由 1~3个 字节组成,具体数目可以由第一个字节判断出来。(理论上可能更长,但这里假设不超过3个字节)
UTF-8的编码方式
- 第一个字节大于224的,它与它之后的2个字节一起组成一个UTF-8字符
- 第一个字节大于192小于224的,它与它之后的1个字节组成一个UTF-8字符
- 否则第一个字节本身就是一个英文字符(包括数字和一小部分标点符号)。
获取长度可以指定编码:
mb_strlen($str,'gb2312')
很简单,转换成cp936编码,然后再直接strlen就行了。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Comment configurer Visual Studio Code (VS Code) pour le développement PHP
