2013-03-04 41 views
0

我需要从php数据库中选择180个字符,并通过php显示阅读更多想要阅读全文的用户的链接。所以我从mysql读取所有文本并使用substr()函数。使用substr方法在php中渲染

$some_text=substr($total_text, 0, 180); 

一切都很好,但一些字符串后char 出现。 这是什么,我该如何解决它? 谢谢

+0

是[U + FFFD](http://www.fileformat.info/info/unicode/char/fffd/index.htm)。它通常是由编码造成的糟糕结果。 – 2013-03-04 14:20:50

+1

'echo htmlentities($ some_text,ENT_QUOTES,'UTF-8');'在你的代码之后。 – Jimbo 2013-03-04 14:24:44

+0

谢谢Jimbo。它的工作。 – IndieBoy 2013-03-04 14:26:52

回答

2

this exact issue用语言翻译项目,我最近一直在努力。

除了改变你的数据库的charset,你可以尝试以下方法:上面的代码后

echo htmlentities($some_text, ENT_QUOTES, 'UTF-8');

4

听起来就像你正在处理多字节字符。尝试使用mb_substr()代替:

$some_text = mb_substr($total_text, 0, 180); 
+0

感谢您的快速回答。是的,我使用多字节字符但mb_substr不能帮助。 – IndieBoy 2013-03-04 14:25:24

+0

甚至用'UTF-8'作为第四个参数,或者用顶部语句'mb_internal_encoding('UTF-8');'? – julp 2013-03-04 14:27:24