我有一個表,其中我有一個utf8_unicode_ci格式的文本列。php utf8文本無法正確呈現
我也有一種形式,我可以把多語言文本放入此字段。
當我取這個專欄中,我想只顯示50字符長每個文本,所以我下面的:
$text = $rows["text"];
$text = mb_substr($text, 0, 50);
$text = htmlentities($text, ENT_COMPAT, 'UTF-8');
這無法呈現非英文字符和犯規顯示任何東西,如果我把mb_substr功能低於htmlentities它會顯示,但它會切斷文本並顯示一些&字母;&另一個;
任何方式,我可以解決這個問題?
什麼*確切*輸出的樣子?爲什麼你首先使用'htmlentities()'? –
由於xss代碼,我需要使用htmlentities。例如,如果我輸入一些樣本文本,例如:「σσσσσσσσσσσσσσσσσσσ」它不會顯示任何內容,因爲它會破壞...如果我刪除htmlentities它將顯示如下:「如果我刪除substr和離開htmlentities它會正常工作,但我需要限制的字符數量爲50. – fxuser
'htmlspecialchars()'足以阻止XSS,不需要將每個字符變成實體 –