2011-11-09 21 views
0

我正在開發一個PHP的網站(5.3.5,Ubuntu),所有的內容是西班牙語。如果文本不符合指定的空間,我想剪切文本。我在PHP文件以下meta標籤,我想這樣做:<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />.奇怪的字符出現後,我使用PHP的mb_substr()字符串

文字來自MySQL數據庫字符集地方是latin1的和整理latin1_spanish_ci。我試圖用mb_substr()函數剪切文本。但它不能正常工作。例如,假設我希望削減短Psicodélico短Psicodéli,該功能將是:

mb_substr('Short Psicodélico', 0, 15, 'ISO-8859-1');

但結果是這樣的:短Psicod & EA。帶變音符號的e被轉換成& ea,我不知道爲什麼。我認爲這與字符編碼有關,但我不知道如何。如果我不使用這個功能,那麼這些字符應該是他們應該顯示的,而不是短Psicod & ea它顯示短Psicodélico

回答

2

該文本在數據庫中編碼爲"Short Psicod&eacute;lico"。您將需要scrub您的數據庫來刪除編碼,以及修復您的輸入例程,以確保文本不保存到編碼數據庫。

+0

其實在數據庫中我有'ShortPsicodélico',但是我正在將htmlentities()應用於字符串** BEFORE **我剪切了字符串。但是如果你沒有提出*&eacute; *,我就不會注意到它。謝謝!現在,我首先剪下了字符串,然後申請了htmlentities(),它效果很棒! =) – ecantu