我正在使用substr方法来访问字符串的前20个字符。它在正常情况下工作正常,但在使用rtl语言(utf8)时,它会给我错误的结果(显示大约10个字符)。我在网上搜索过,但发现第n个问题很有用。这是我的代码行:
substr($article['CBody'],0,20);
提前致谢。
答案 0 :(得分:10)
如果您正在使用编码为UTF-8的字符串,则可能会丢失 尝试使用PHP substr获取其中一部分时的字符 功能。发生这种情况是因为UTF-8字符不受限制 到一个字节,它们具有可变长度以匹配Unicode字符, 1到4个字节之间。
您可以使用 mb_substr() ,它的工作方式与substr几乎相同,但区别在于您可以添加新参数来指定编码类型,无论是{{1}或者不同的编码。
试试这个:
UTF-8
希望这有帮助。
答案 1 :(得分:0)
使用此代替,这是额外的文字,使身体足够长。这将处理多字节字符。 http://php.net/manual/en/function.mb-substr.php