2013-03-04 82 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