У меня проблема (знак) UTF8. Это то, что происходит:UTF8 Кодирование - проблемы со старой базой данных и черными бриллиантами
База данных старше 6 или 7 лет. Я возвращаю сайт к жизни, но мне не повезло с кодировкой UTF8. Редактирование EDIT: после того, как я получил еще один удар, мне удалось сделать больше всего персонажей, например Grüßgott теперь работает. Тем не менее, я все еще получаю черные бриллианты на фигурных одиночных и двойных кавычках.
Я сделал кучу поиска stackoverflow и попробовал много чего.
Локальная база данных разработчиков, над которой я работаю, настраивается с UTF8 и utf8_general_ci. Я вручную преобразовал каждую таблицу из latin1_general_ci_as в utf8_general_ci и изменил диаграмму на UTF8. Некоторые из них не работали с запросом, поэтому я вручную перешел к дизайну таблицы, а затем, похоже, это исправить. Я понимаю, что некоторые таблицы COLUMNS могут (и на мой взгляд) установлены на latin1_general_ci_as, но я делаю тестовый пример с 1 конкретным фрагментом кода и что (блог) определенно UTF8.
Соединение с базой данных настроена следующим образом:
$connection = mysql_connect($DB_SERVER, $DB_USER, $DB_PASS); mysql_query("SET character_set_results=utf8", $connection); mb_language('uni'); mb_internal_encoding('UTF-8'); mysql_select_db($DB_NAME, $connection); mysql_query("SET names 'utf8'",$connection);
Сайт Procedual PHP. В файле functions.php он выбирает данные из базы данных, как показано ниже. Единственная причина, по которой я показываю это, в моих чтениях, я видел, как некоторые люди говорили, что вам нужно что-то устанавливать каждый раз, но я действительно надеюсь, что вам не нужно объявлять что-то каждый раз, когда вы хотите что-то извлечь из базы данных ,
query("SELECT * FROM table_name WHERE data='$something[unique]'");
Сайт HTML5, и у меня это есть в header.php. Насколько я могу судить, все в порядке.
<? header('Content-Type: text/html; charset=utf-8'); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8">
Итак, вот где я. Я бы очень хотел решить проблему раз и навсегда и не беспокоиться об этом снова. Любая помощь или идеи приветствуются.
Если у вас есть столбцы, которые 'latin1_general_ci_as' тогда я бы ожидать, что они должны быть преобразованы в базу данных уровень тоже. – halfer
Почему вы используете функции 'mysql_ *' и 'mysqli_'? Вы не можете их смешивать! Первые также устарели и будут удалены в ближайшем будущем! – ComFreek
1) Вы следили за всем здесь: http://stackoverflow.com/questions/279170/utf-8-all-the-way-through? 2) Вы все понимаете здесь: [Обращение с Unicode Front To Back в веб-приложении] (http://kunststube.net/frontback/)? 3) Правильно ли данные отображаются в базе данных с помощью инструмента администрирования, который получает право кодирования (надеюсь)? – deceze