Heim  >  Artikel  >  Backend-Entwicklung  >  mb_substr中文日文长度相同,显示长度不同

mb_substr中文日文长度相同,显示长度不同

WBOY
WBOYOriginal
2016-06-06 20:41:511131Durchsuche

两段中文和日本,从肉眼上看是不在同一位置结束的,但是使用mb_strlen函数获取的长度确是相同的,测试代码如下:

<code>$str_0 = '[银光字幕组][哆啦A梦新番Doraemon][006][GB][2005.05.20]秘密间谍大作战&Hello!宇';
$str_1 = 'Hello Kitty no Happy Birthday (ハローキティとミミィのハッピーバースデー) OVA.mp';
$str_2 = 'ARR] Hello Kitty no Fushigi no Kuni no Alice (ハローキティの不思議の国の';
$str_3 = '2014.myHD.六福喜事.Hello Babies.粵語中字.AC-3.1920x1080-MYfun4U.mkv';
return mb_strlen($str_0, 'utf-8').'@'.mb_strlen($str_1, 'utf-8').'@'.mb_strlen($str_2, 'utf-8').'@'.mb_strlen($str_3, 'utf-8');
</code>

测试结果长度都是59,但是肉眼很明显看到长度不统一啦,这样的话就会造成mb_substr这个函数截取的数据长度不统一,在前端就会换行了。

大家是如何解决这个问题的?

回复内容:

两段中文和日本,从肉眼上看是不在同一位置结束的,但是使用mb_strlen函数获取的长度确是相同的,测试代码如下:

<code>$str_0 = '[银光字幕组][哆啦A梦新番Doraemon][006][GB][2005.05.20]秘密间谍大作战&Hello!宇';
$str_1 = 'Hello Kitty no Happy Birthday (ハローキティとミミィのハッピーバースデー) OVA.mp';
$str_2 = 'ARR] Hello Kitty no Fushigi no Kuni no Alice (ハローキティの不思議の国の';
$str_3 = '2014.myHD.六福喜事.Hello Babies.粵語中字.AC-3.1920x1080-MYfun4U.mkv';
return mb_strlen($str_0, 'utf-8').'@'.mb_strlen($str_1, 'utf-8').'@'.mb_strlen($str_2, 'utf-8').'@'.mb_strlen($str_3, 'utf-8');
</code>

测试结果长度都是59,但是肉眼很明显看到长度不统一啦,这样的话就会造成mb_substr这个函数截取的数据长度不统一,在前端就会换行了。

大家是如何解决这个问题的?

...我这里程序输出的是59...然后我每个都特地数了两遍..都是59个字..mb_strlen并没有问题...

Stellungnahme:
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