如何在 PHP 中剪切带有日本字符的字符串的一部分


How to cut a part of string with japan character in PHP?

>我有一个字符串:$fullname = 'ワタナベサン';

还有一些行代码用于剪切带有条件的字符串的一部分:

if (strlen ( $fullname ) >= 14)
    $this->FullName = substr ( $fullname, 0, 10 ) . '...';
else
    $this->FullName = $fullname;

但结果显示为错误的字符串,如:'ワタナ�...' .

使用日语字符时,需要使用字符串函数的多字节版本。使用 mb_substr 代替 substr,使用 mb_strlen 代替 strlen。

substr 和所有其他核心 PHP 字符串函数都不能识别多字节,无法正确处理多字节字符串。它们仅在 ASCII 字符串或其他单字节编码上正常工作。要正确操作多字节字符串,在大多数情况下,您需要在 MB 扩展名中使用等效函数。

查看每个程序员绝对、积极需要了解的有关编码和字符集的信息,以处理文本以获取更多信息。欢迎来到角色编码的兔子洞;你有很多东西要学。:o(