Heim > Backend-Entwicklung > PHP-Tutorial > echo strlen('你好'); 显示的是6为什么是6(按理说应该是4)呢?

echo strlen('你好'); 显示的是6为什么是6(按理说应该是4)呢?

WBOY
Freigeben: 2016-06-06 20:42:13
Original
1273 Leute haben es durchsucht

不是说一个汉字相当于两个字符吗?

回复内容:

不是说一个汉字相当于两个字符吗?

编码集不同,如果是unicode较为常见的那种编码,那么一个汉子占用两个字节。
如果是UTF8,那么占用字节数是不定的,有可能是三个,最多是6个。
http://blog.csdn.net/lazyclough/article/details/7691911

要看是什么编码啊。
例如UTF-8: 8bit变长编码,对于大多数常用字符集(ASCII中0~127字符)它只使用单字节,而对其它常用字符(特别是朝鲜和汉语会意文字),它使用3字节。

问之前请先搜索。一个汉字相当于两个英文字符是说字的显示占位,跟计算出来的"长度"可没什么关系。http://developer.51cto.com/art/201105/263103.htm 这个上面已经说的很明白啦,UTF-8下面一个汉字是占3个字节的。

gbk编码下面一个汉字占两个字节。
utf-8下面三个,utf-16下面两个,utf-32下面四个。

要是想计算有几个字而不是字节,用mb_strlen

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage