Почему иностранные символы сохраняются на MySQL в стиле фанк? - PullRequest
1 голос
/ 23 апреля 2011

Я отправляю на свою страницу PHP следующее, которое затем вызывает мой сервер MySQL:

ethan•test•again

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

ethan•test•again

Вот некоторый частичный код на моей странице PHP, который показывает, как я сохраняю данные:

if(mysql_query("CALL InsertTitle
(
  '".mysql_real_escape_string(urldecode($_POST['title']))."'
)"))

Интересно то, что когда я вызываю сервер MySQL для отображения данных через другую страницу PHP, он выглядит простохорошо.Все на самом деле работает просто отлично и как и ожидалось для меня.Вот пример частичного кода, который можно извлечь из данных:

$result = mysql_query("SELECT title FROM item WHERE id = '".mysql_real_escape_string($_GET['id'])."'");

print "<?xml version=\"1.0\" encoding=\"UTF-8\"?><rss version=\"2.0\"><channel><title>Titles</title>";

while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) 
{
  echo "<title>".$row{'title'}."</title>";
}

И на странице XML он выглядит просто отлично:

ethan•test•again

Почему это выглядит так странно на моем сервере MySQL?Я что-то не так делаю?

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

Используйте utf8_general_ci параметры сортировки в полях таблицы строк и добавьте mysql_query("SET NAMES 'UTF8'"); после подключения к БД.

0 голосов
/ 24 апреля 2011

End и end выглядят нормально, что-то посередине.Я чувствую, что это просто дисплей, который не поддерживает символы.Где вы смотрите в базе данных?Если это консоль или phpmyadmin, я не думаю, что он будет отображаться правильно, даже если он сохранен в utf8.

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