2012-05-31 4 views
2

Итак, у меня есть таблица, которая является «utf8_general_ci» с теми же полями.MySql/php utf8, похоже, не работает правильно

Я не мог получить в нем никаких символов utf8, все они отображались как «????» , затем я заменил таблицу на «MyISAM», и теперь я могу вставить данные utf8 из PhpMyAdmin (первый раз что-то подобное происходит).

Но он все еще не работает со стороны PHP. Когда я вставляю «āāā», он отображается как «???», но странная часть, если я вставляю «žžžēēē», он отображается как «žžž ???» поэтому работают некоторые символы utf8? PHP файл UTF-8

CREATE TABLE IF NOT EXISTS `company` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `title` varchar(100) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=5 ; 

$dbConnection = mysql_connect("localhost","*****","*****"); 
mysql_query("SET NAMES 'utf8'", $dbConnection); 
mysql_query("SET CHARACTER SET 'utf8'", $dbConnection); 
mysql_select_db('cherrysystem', $dbConnection); 
mysql_query("INSERT INTO `company` (`title`) VALUES ('āāčč')",$dbConnection); 

ПОСТАНОВИЛИ

Итак, проблема в моем случае было то, что я должен был установить MySql INI файл использовать utf8. По умолчанию это было что-то еще, я использую Wamp-сервер, и он всегда работал без дополнительной настройки, но не в этом случае.

character-set-server=utf8 
collation-server=utf8_general_ci 
+0

Как насчет ['УСТАНОВИТЬ НАЗЫВЫ 'utf8''] (http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html)? – Alexander

+0

mysql_query ("SET NAMES 'utf8'", $ dbConnection); mysql_query ("SET CHARACTER SET 'utf8'", $ dbConnection); – somerandomusername

+1

Вы знаете, что можете отредактировать свой вопрос, верно? – Alexander

ответ

1

Очевидно, что-то не является «Юникодом» в способе обработки данных.

Вот мои лучшие 7 обычных подозреваемых:

  • PHP-файл, содержащий код не является UTF-8 сама
  • Подключение к базе данных должны соответствовать Unicode (SET NAMES 'utf8')
  • Введенные данные должны быть utf8 закодированы при импорте из источника, не являющегося unicode, например
  • Контрольные таблицы и используемые столбцы для хранения данных
  • HTML файл, используемый для отображения данных не UTF (так же, как пункт 1)
  • HTML кодировка объявлена ​​в meta tags должна быть UTF-8 также
  • ... нет смысла 7 (возможно, в комментариях)

Надеюсь, это поможет!

+0

Привет. Таким образом, я triple проверил все. Файл PHP - utf8. Как вы можете видеть в моем верхнем посте, у меня есть SET NAMES 'utf8'. Я просто вставляю данные из файла, другого источника. Я проверил все таблицы, и они utf8. Я запускаю скрипт из консоли, но не понимаю, почему HTML должен что-то изменить в db. – somerandomusername

+0

Я знаю все общие проблемы, и у меня были все они раньше, но теперь я понятия не имею. – somerandomusername

+0

@ user1384210: можете ли вы вставить html-страницу и код, который вы используете, чтобы отобразить это после вставки? –

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