Обработка Charset (Пользовательский ввод -> Php -> Mysql и обратно) - PullRequest
1 голос
/ 03 апреля 2012

Пожалуйста, перейдите сюда, чтобы увидеть мою проблему, она находится внутри карты в левой части страницы: http://gumonshoe.net/magic/card/?card=258

Апострофы конвертируются в ascii, как это выглядит из различных иностранных текстовых форматов. Я видел это, но так как я использую американский английский, который, вероятно, является базовым по умолчанию, я не могу воспроизвести ошибку, чтобы проверить ее.

Я полагаю, что должен быть правильный способ передачи персонажей, я просто не знаю, что это такое.

Ответ, который я ищу, скажет мне, где в этой цепочке все запутано.

User Form on web page for input >>
javascript method >>
php >>
mysql

Насколько я могу судить, это происходит в PHP. К тому времени, когда он туда доберется, это определенно неправильно в базе данных.

Я был бы очень доволен решением, которое исправит все с этого момента, а не патчем, чтобы исправить то, что уже есть в БД, поскольку я могу достаточно легко найти / заменить эти экземпляры.

Спасибо за помощь. Поиск дал мне смешанные результаты, но я не смог найти ничего, что казалось бы идентичным моей проблеме, и объяснил это с самого начала.

Опять же, большое спасибо!

Имеет ли это какое-либо отношение к этому:

mb_internal_encoding

1 Ответ

1 голос
/ 03 апреля 2012

Это не происходит только в одном месте, это всегда происходит в связи между двумя сторонами.Это может происходить при обмене данными между браузером <-> php или php <-> mysql

. Убедитесь, что в заголовке html есть метатег charset, например:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Таким образом, ваш веб-браузер знает, какую кодировку использовать при публикации данных на ваш сервер (и какую кодировку использовать при отображении вашей страницы).

При подключении к mysql вы должны убедиться, что ваше соединение говоритодна и та же кодировка на обоих концах, и это должна быть та же кодировка, которую использует веб-браузер:

mysql_query('set names utf8');

Теперь все будет в порядке.

...