Когда я пытаюсь вставить некоторые редкие специальные символы (∨ ∧ → ↔ ∴), они сохраняются в виде вопросительных знаков.Но когда я пытаюсь вставить несколько более распространенных специальных символов (© ® ¬), все идет хорошо.
Я установил каждую переменную, базу данных, таблицу и соединение, которые смог найти, в UTF-8, но не повезлоеще.Что мне не хватает?Заранее спасибо!
Вот минимальный пример:
<?php
header('content-type:text/html; charset=utf-8;');
$connection = mysql_connect('localhost', 'root', '');
mysql_select_db('test', $connection);
mysql_set_charset('utf8', $connection);
mysql_query('SET NAMES UTF8');
$special_character = '∴';
echo 'Encoding of the special character before insert: '.base64_encode($special_character).'<br />';
mysql_query('INSERT INTO table (column) VALUES ("'.$special_character.'")');
$query = mysql_query('SELECT column FROM table');
while ($ROW = mysql_fetch_assoc($query))
{
echo 'Encoding of the special character after retrieval: '.base64_encode($ROW['column']).'<br />';
echo 'Output: '.$ROW['column'].'<br />';
}
mysql_close($connection);
?>
Вывод этого скрипта:
Кодировка специального символа перед вставкой: 4oi0
Кодировка специального символа после извлечения: Pw ==
Вывод:?
Может быть, потому что у меня есть стандартная установка MySQL для Mac OSX, котораянет файла my.cnf?Может быть, значения по умолчанию, которые идут с этой установкой, не являются UTF-8?Кто-нибудь знает?
ОБНОВЛЕНИЕ: Я определил, что проблема в моей локальной установке MySQL, потому что она не появляется, когда я запускаю код на своем веб-хосте.Я все еще хочу решить это, хотя.