2010-09-07 2 views
0

У меня есть файл excel с неанглийскими символами в нем. когда я открываю файл excel, я получаю случайные английские символы. Но когда я меняю шрифт на этот язык, я могу читать действительный текст.Вставка и отображение неанглийских шрифтов в mysql

Но проблема в том, что когда я загружаю данные из этого файла excel в mysql через php, я получаю только эти случайные английские символы. Я не получаю язык, который мне нужен, в mysql или php.

Я изменил набор символов в UTF-8 в MySQL, а также используется:

mysql_query('SET collation_server=utf8_general_ci'); 
mysql_query('SET collation_connection=utf8_general_ci'); 
mysql_query('SET collation_database=utf8_general_ci'); 

mysql_query('SET character_set_server = utf8'); 
mysql_query('SET character_set_database = utf8'); 
mysql_query('SET character_set_results = utf8'); 
mysql_query('SET character_set_client = utf8'); 
mysql_query('SET character_set_connection=utf8'); 
mysql_query('SET names utf8;'); 
mysql_query('SET character_set utf8;'); 

после PHP-MySQL соединения.

Что я должен делать, чтобы автоматически отображать шрифты в браузере? BTW, если я изменяю шрифт браузера, я могу прочитать действительный текст.

Спасибо.

+0

ли дамп на колонке, содержащей эти «случайные символы» (например: 'SELECT, HEX (столбец) ГДЕ ... 'и скажите нам, что вы получите – NullUserException

+0

я получаю это: 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B 62676857673B675B5B663B204668706174753B – jest

+2

H Вы импортируете файл 'Excel' с помощью' PHP'? Какие библиотеки/расширения вы используете для чтения файла? – Quassnoi

ответ

0

Если вам действительно нужно перейти к определенному шрифту, чтобы отобразить символы (а не просто правильно установить кодировку), то то, что у вас есть, является специальным «визуальным кодированием» для конкретного шрифта, где присутствуют символы : нормальные символы ASCII, но глифы, сопоставленные с этими символами шрифта, не выглядят похожими на эти символы ASCII.

Это ужасный, ужасный хак, который никогда не может работать в Интернете. Иногда было необходимо в старые времена (до Unicode) представлять необычные языки, у которых не было официальной кодировки, но в наши дни почти все имеет правильную кодовую точку.

Если это то, о чем вы говорите, я боюсь, что вам придется пройти через каждый символ ASCII, посмотреть на глиф, на который он указывает, и узнать, что обозначает код Юникода для символа, который глиф действительно представляет есть. Это даст вам сопоставление с настраиваемым шрифтом в Юникод, которое вам нужно будет использовать для преобразования всех ваших данных из текущего формата.

Так что же такое язык, а какой шрифт?

(в сторону: используйте mysql_set_charset() установить кодировку соединения MySQL из PHP, а не какой-либо из утверждений выше.)

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