Иностранные персонажи превращаются в мусор в MySQL - PullRequest
5 голосов
/ 25 февраля 2010

Я в США. На моей веб-странице есть следующая строка:

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

А моя таблица MYSQL - MyISAM latin1_swedish_ci

Но когда кто-то заполняет форму с чужим символом, он сохраняется в MySql как мусор. Примером может служить e с акцентом на нем и т. Д., Что обычно не используется в американском английском. Даже если кто-то использует странный апостроф, его превращают в мусор:

* +1007 * * нации 1008 *

превращается в:

Nationa € ™ s

Я использую обычный апостроф, но вы поняли. Иностранные персонажи превращаются в 3 мусорных персонажа. Пожалуйста помоги! ТИА

Ответы [ 3 ]

6 голосов
/ 25 февраля 2010

Либо измените заголовок документа на

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

или - лучше - изменить набор символов в таблицах на UTF-8. Чтобы сделать это не совсем тривиально, просто изменение сортировки таблиц не поможет. Этот вопрос SO может дать несколько указателей.

0 голосов
/ 25 февраля 2010

Я помню тот же случай в SQlServer, надеюсь, он поможет с этой проблемой.

Имеется два типа данных: varchar [8 бит] и NVarChar [16 бит].

Теперь, используя varchar, вы не можете хранить 16-битные символы скриптов, такие как Chines, Indic и т. Д., Вы должны использовать тип данных NVarchar, то есть 16-битные символы.

0 голосов
/ 25 февраля 2010

Мне кажется, вводимые в базу данных данные - это utf8. Чтобы поместить это в таблицу, его необходимо преобразовать в латиницу 1 (поскольку это набор символов вашего столбца), и это может привести к одному-трем символам латиницы 1.

Пекка просто побил меня этим - его решение должно помочь решить эту проблему.

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