проблема с китайским иероглифом - PullRequest
0 голосов
/ 05 февраля 2011

Мы можем сохранить китайский иероглиф в таблице mysql, используя это

(" meta http-экв =" тип контента "значение =" текст / html; кодировка = UTF-8 "")

в верхней части страницы, легко вводя китайский символ через поле ввода вручную, он работает нормально и сохраняет китайский символ в таблицу mysql следующим образом (" A # 20026; A # 24744; A # 20026; A # 24744; ").
Но когда вы читаете китайский char из файла excel с помощью php и хотите вставить его в mysqltable с помощью php, он сохраняется следующим образом

( "上æμ · 东渡è¹è¶ç®¡ç † æœ ‰ é ™ å ... ¬a")

Это также работает нормально с помощью функции заголовка php ["header ('Content-type: text / html; charset = UTF-8');"] без заголовка http это не работает. Но я хочу хранить китайский символ, как указано выше (" A # 20026; A # 24744; A # 20026; A # 24744 ; ") в таблице MySQL.

Примечание: = Где вы видите "A" , в коде есть знак " ampersand ". Если я напишу « амперсанд », то он будет отображаться как китайский иероглиф, поэтому здесь это заметили.

Кто-нибудь может мне помочь? Помочь должно быть радостно. Благодарю. Хорошего дня ...

Ответы [ 4 ]

1 голос
/ 05 февраля 2011

Вы должны перенести свой вопрос из SQL в Excel.По-видимому, это не связано с MySQL.Проблема в том, что вы читаете файл Excel на PHP.Вы получаете поврежденные данные из файла Excel, и тогда уже слишком поздно что-либо предпринимать.

Понимает ли библиотека, используемая для чтения файлов Excel, символы юникода вообще?PHP понимает юникод или эта библиотека хотя бы способна отправлять символы юникода в utf-8?Я так не думаю.(Строки UTF-8 могут корректно работать в средах сценариев, где Unicode фактически не поддерживается, потому что программа передает только строку от пользователя к базе данных и наоборот.)

0 голосов
/ 05 февраля 2011

Сначала убедитесь, что таблица базы данных и форма, в которую пользователь вводит символы, являются UTF-8.Также обратите внимание, что многие PHP-функции не поддерживают UTF-8 .Если вы используете такие функции, как htmlentities(), убедитесь, что вы заменили их на функции многобайтовой защиты строк (mb_).

0 голосов
/ 05 февраля 2011

Попробуйте после MySQL_connect:

mysql_query("SET NAMES 'utf8'");
0 голосов
/ 05 февраля 2011

Символы не сохраняются как UTF-8 в вашем файле Excel и должны быть перекодированы.

См. utf8_encode

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...