2011-02-05 2 views
0

Мы можем хранить китайский символ в тузде таблицу С помощью этогопроблемы с китайским характером

("META HTTP-эквив = "Content-Type" значение = "текст/html; кодировка = UTF-8"")

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

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

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

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

Любой может мне помочь? Помощь должна быть счастливой. Спасибо. Имейте хороший день ...

+0

Дайте нам код, на что вы пытались. Как вы читаете файл excel? Как вы передаете его в MySQL? Как вы определяете, что он не был сохранен правильно? – Kissaki

ответ

1

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

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

0

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

См utf8_encode

0

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

mysql_query("SET NAMES 'utf8'"); 
0

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

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