我有一个表格,其中我有一个utf8_unicode_ci格式的TEXT列。
我还有一个表单,我可以将多语言文本放入此字段。
当我从此列中获取每个文本时,我想只显示50个字符,所以我执行以下操作:
$text = $rows["text"];
$text = mb_substr($text, 0, 50);
$text = htmlentities($text, ENT_COMPAT, 'UTF-8');
这无法呈现非英文字符并且不显示任何内容,如果我将mb_substr函数放在htmlentities下面它会显示但它会剪切文本并显示一些& letter;& another;
我可以用任何方式解决这个问题吗?
答案 0 :(得分:1)
您可以使用mb_internal_encoding将char编码更改为UTF-8,这可能会解决它。
mb_internal_encoding('UTF-8');
答案 1 :(得分:0)
如果您使用的是mySQL< 5.0.7:
在查询时启用utf -8 mysql_query(“SET NAMES utf8;”);
如果您使用的是较新的mySQL:
mysql_set_charset( “UTF8”);
和
header('Content-type:text / plain; charset = UTF-8');