|
Тема |
Re: ??????? вместо кирилица [re: evg9] |
|
Автор |
anastasd (непознат) |
|
Публикувано | 14.12.07 02:33 |
|
|
Чекай да ти кажем още по-голяма мистерия.
Имам MYSQL таблица с две полета (опростявам за примера). И на двете е указан инкодинг utf8_general_ci. В първото имам следното:
Иван Петров
Във второто имам:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><name>Иван Петров</name>
Чета и двете, като първото го показвам непроменено, а второто парсвам с XMLReader и вземам стойността на <name>. Шок и ужас! Второто се изписва коректно в страницата като "Иван Петров", а първото излиза "?????.."
Първа груба грешка: почвам да сменям инкодингите в MYSQL таблицата - все тая.
Втора груба грешка: започвам с mb_check_encoding да търся какъв е инкодинга на резултата от MYSQL заявката. Функцията връща true при всякакви проби!!!! После разбрах, че била бъгава.
Решението в моя случай се оказа следното:
Преди реда, който чете данните от базата, т.е. mysql_query('SELECT ... FROM ...') добавих следния ред:
mysql_query('SET NAMES utf8');
и всичко грейна! Не съм сигурен дали същото работи при други бази данни, но можеш да опиташ.
|
| |
|
|
|