выпрямляющий утф-8 - PullRequest
       1

выпрямляющий утф-8

0 голосов
/ 21 января 2012

На моем сайте у многих пользователей есть иностранные имена, и они выходят забавными из-за сценария чата, который я недавно купил, и мне было интересно, есть ли какие-нибудь php-функции или что-нибудь, что могло бы с этим разобраться.

Обратите внимание, как они выглядят смешно, как они хранятся в базе данных.

Алисия Карреон Geneviève

Например.

Так как я могу использовать php, чтобы они выглядели правильно?

Спасибо

РЕДАКТИРОВАТЬ: при использовании MYSQL они выглядят корректно, но не при вставке в html-файл или эхом

РЕДАКТИРОВАТЬ 2:

Я запустил это в phpmyadmin: "mysqldump -h localhost -u root -p --opt --quote-names \ --skip-set-charset --default-character-set = латинский1 общий> общий-dump.sql «

Ошибка была: "# 1064 - у вас есть ошибка в вашем синтаксисе SQL; проверьте правильность синтаксиса в руководстве, соответствующем вашей версии сервера MySQL, для использования рядом с 'mysqldump -h localhost -u root -p --opt --quote-names \ --skip-set-charset 'в строке 1 "

РЕДАКТИРОВАТЬ 3:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<?php       
$connection = mysql_connect('localhost','root','');
$select = mysql_select_db('general',$connection);
$result = mysql_query('SELECT name FROM exchange WHERE `id`= 192');
$results = mysql_fetch_assoc($result);
echo $results['name'];


?>

Ответы [ 3 ]

1 голос
/ 21 января 2012

Есть как минимум полдюжины мест, где кодировка / кодировка могут быть неправильными, и трудно сказать, какой из них виноват. Довольно часто их бывает несколько. Поэтому я бы посоветовал начать с чтения этой статьи о Unicode . Это не самое короткое время, но это будет одна из самых ценных 20 минут вашей карьеры программиста. После этого и некоторых обдуманных действий вы сможете определить источник и решение ваших проблем.

0 голосов
/ 21 января 2012

Вам необходимо установить соединение с базой данных на UTF-8, чтобы сообщить базе данных, что данные, которые будут отправлены на нее, будут в UTF-8, а данные, которые возвращаются из него, должны быть в UTF-8:

$connection = mysql_connect('localhost', 'root', '');
mysql_set_charset('utf8', $connection);

См. http://php.net/manual/en/function.mysql-set-charset.php.

0 голосов
/ 21 января 2012

Скорее всего, они неправильно хранятся в вашей базе данных. Используйте Adminer, PHPMyAdmin или строку запроса, чтобы изменить поле, таблицу или базу данных (я рекомендую последнее) на utf8_general_ci. Вы, вероятно, используете кодировку по умолчанию latin, которая не поддерживает символы UTF8.


Команда, которую вы пытались запустить в PHPMyAdmin в вашем OP, должна запускаться из консоли; это не SQL-запрос, следовательно, синтаксическая ошибка. Попробуйте использовать встроенные в PHPMA вкладки экспорта и импорта для экспорта и импорта ваших данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...