我有一个表,其中我有一个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,不需要将每个字符变成实体 –