2017-02-15 45 views
0

Я работаю над приложением, где мне нужно хранить/отображать данные, содержащие множество специальных символов. Я установил сортировку базы данных utf8. Я установил сопоставление таблицы utf8 и набор символов как utf8_unicode_ci. Он хранит все специальные символы, такие как é, â. Но всякий раз, когда появляется символ, , он не сохраняется, как есть. Как всякий раз, когда есть слово “attributedâ€, оно становится âattributedâ. В настоящее время я использую Laravel 5.2 (PHP).MySQL не будет хранить «€»

То, что я пытался до сих пор я поставил следующие в моем коде

iconv_set_encoding('internal_encoding', 'UTF-8'); 
    mb_internal_encoding('UTF-8'); 

Я также попытался

$value = array_map("utf8_encode", $array); 

Но этот специальный символ не получает хранится, как это , Кто-нибудь даст мне знать, что я должен сделать, чтобы сохранить этот специальный символ как есть.

+0

вы пытались с помощью 'ISO-8859-1' вместо 'UTF-8'? – Option

+0

Вы прочитали сообщение [this] (https://bugs.mysql.com/bug.php?id=37724)? Он рекомендует изменить тип кодировки –

+0

Просматриваются ли ваши данные через URL-адрес? Как эти данные получены? Вы пытались вывести его на экран? – itsols

ответ

0

попробовать не установив свой сверку в «utf8_general_ci» в вашем MySQL

+0

пробовал. Не работает –

+0

у вас все еще есть ваша кодировка в вашем php-файле? –

+0

есть. то есть –

0

Обычно не его проблемы, чтобы сохранить знак в поле базы данных. Убедитесь, что все ваши скрипты находятся в правильном кодировании.

Установите таблицу и все данные в этой таблице на utf8_general_ci, затем попробуйте изменить файл php на UTF-8.

header('Content-Type: text/html; charset=utf-8'); 

И если у вас неверные данные, то используйте.

utf8_encode("test"); 

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

0

Для возможности использовать UTF8 символы в запросах необходимо выполнить определенную настройку этот запрос, как это:

$db->query("SET NAMES UTF8"); 

Но я видел, что вы сказали, что вы используете Laravel. Я не работал над этим, но я думаю, это автоматически будет установлено параметром charset написанном в конфигурации, так же, как на скриншоте этого вопроса: Laravel UTF-8 To Database

 Смежные вопросы

  • Нет связанных вопросов^_^