php utf8 текст не отображается правильно - PullRequest
0 голосов
/ 19 сентября 2011

У меня есть таблица, где у меня есть столбец TEXT в формате utf8_unicode_ci.

У меня также есть форма, где я могу поместить многоязычный текст в это поле.

Когда я выбираю каждый текст из этого столбца, я хочу показать только 50 символов в длину, поэтому я делаю следующее:

$text = $rows["text"];
$text = mb_substr($text, 0, 50);
$text = htmlentities($text, ENT_COMPAT, 'UTF-8');

это не в состоянии отображать не английские символы и ничего не показывает, если я поставлю функцию mb_substr ниже hmmlentities, она появится, но она обрежет текст и покажет некоторые & letter; & another;

Как я могу решить эту проблему?

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Вы можете использовать mb_internal_encoding , чтобы изменить кодировку символов на UTF-8, которая может решить эту проблему.

mb_internal_encoding('UTF-8');
0 голосов
/ 19 сентября 2011

Если вы на MySQL <5.0.7: </p>

Включить utf -8 при выполнении запросов с помощью mysql_query ("SET NAMES utf8;");

если вы используете более новую версию MySQL:

mysql_set_charset ( "utf8");

И

заголовок ('Content-type: text / plain; charset = UTF-8');

...