PHP:是否可以正确地 SUBSTR 一个 UTF-8 字符串?
我有(在SQLite数据库中)以下字符串:
Лампа в вытяжке на кухне меняется, начиная с вытаскивания белого штырька справа.
PHP 使用 正确显示该字符串。我只想获得这个字符串的前50个字符,即print
Лампа в вытяжке на кухне меняется, начиная с вытас
.
我尝试同时使用子字符串和mb_substr,并得到
Лампа в вытяжке на кухне ме�
,即只有 28 个字符。
在阅读了这里和其他地方关于mbstring问题的内容后,我意识到这实际上是一个50字节的字符串(22个俄语字符= 44个字节加5个空格加1个问题符号)。
有什么好的解决方案吗?我所有的字符串都是UTF-8,所以我当然可以自己编程一个子str函数,通过检查每个字节的第一位等。但这肯定应该以前做过,对吧?
更新:我认为无法正常工作,因为无法正常工作。mb_substr
mb_detect_encoding()