2013-04-21 6 views
0

У меня возникли проблемы при вставке в таблицу в моей базе данных. Работает сервер Ubuntu:Скандинавские символы в mysql отображаются неправильно

Дистрибьютор ID: Ubuntu Описание: Ubuntu 12.04.2 LTS выпуска: 12,04 Codename: точный

я создал базу данных с одной таблицей следующим образом:

Создание базы данных mysql> создать базу данных test1234 CHARACTER SET latin1;

Создание таблицы mysql> create table testtbl (test varchar (22) CHARACTER SET latin1);

Вставить mysql> Вставить в testtbl (test) значения ('asdsdaæø');

Выбрать: mysql> select * from testtbl;

+ -------------- +
| тест |
+ -------------- +
| |
| asdsda |
| Ã|øà ¥ |
| Ã|øà ¥ |
| asdadsÃ|øà ¥ |
+ -------------- +
5 строк в наборе (0,00 сек)

MySQL Вер 14.14 DISTRIB 5.5.29, для Debian-Linux-гну (x86_64) с использованием Readline 6,2

Connection ID: 427
Текущая база данных: test1234
Текущий пользователь: корень @ локальный
SSL: Не используется
Текущий пейджера: стандартный вывод
Использование выходной_файл: ''
Использование разделителя:;
Версия сервера: 5.5.29-0ubuntu0.12.04.2-журнал (Ubuntu)
версия протокола: 10
соединения: Localhost через сокет UNIX
Сервер CharacterSet: latin1
Db CharacterSet: latin1
Клиент CharacterSet: . latin1
Конн таблице символов: latin1
UNIX сокет: /var/run/mysqld/mysqld.sock
Uptime: 12 дней 19 часов 9 мин 35 сек

Я тоже пробовал с utf8, но с тем же результатом.

От /var/log/mysql/mysql.log
130421 18:03:06 427 Query вставить testtbl значения (тест) ('') asdads 130421 18:03:08 427 запросов выбрать * из testtbl

Я искал рядом со всем Интернетом, но без везения найти решение.

ответ

0

Возможно, у вас есть клиентский браузер/SQL, работающий под UTF-8, в то время как данные БД находятся на латинице-1.

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

  • Кодирование данных, передаваемых в вашу базу данных
  • Кодировка базы данных
  • Кодировка файла/сценария чтения из базы данных

Если конечная точка является веб-страница:

  • кодировка, в заголовках HTTP
  • Кодировка устанавливается в мета-теги
  • настройки
  • Веб-браузер кодирования (должен быть автоматически установлен в соответствии с HTTP заголовка/мета-теги)

Хороший совет всегда использовать UTF-8, если вы на самом деле не нужны использовать latin1. UTF-8 все больше становится стандартом везде, и большинство приложений использует его в качестве стандарта.

+0

AS Я отвечал: Сервер CharacterSet: latin1 Db CharacterSet: latin1 Client CharacterSet:. Latin1 Conn CharacterSet: latin1 На данный момент я только вставку и выбор данных непосредственно из тузда clinet – Michael

+0

@ user2304731 Какого характера установлен ли консоль linux? ('Locale' в командной строке) –

+0

LANG = en_US.UTF-8 Language = en_US: EN LC_CTYPE = "en_US.UTF-8" LC_NUMERIC = "en_US.UTF-8" LC_TIME =" en_US.UTF -8" LC_COLLATE = "en_US.UTF-8" LC_MONETARY = "en_US.UTF-8" LC_MESSAGES = "en_US.UTF-8" LC_PAPER = "en_US.UTF-8" lc_name = "en_US.UTF -8" LC_ADDRESS = "en_US.UTF-8" LC_TELEPHONE = "en_US.UTF-8" LC_MEASUREMENT = "en_US.UTF-8" LC_IDENTIFICATION = "en_US.UTF-8" LC_ALL = – Michael

Смежные вопросы