Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MySQL - кодировка

552
04 августа 2007 года
Ivanhoe
373 / / 30.04.2006
(Не)большая проблема с кодировками в мускле.
База создается запросом:
 
Код:
CREATE DATABASE `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Далее создается таблица запросом:
 
Код:
CREATE TABLE `mytable` (
 `txt` TEXT NOT NULL
) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci

Далее делаю INSERT следующего вида:
 
Код:
INSERT INTO mytable VALUES('абвгдеёжзиклмнопрстуфхцшщьъэяю');

И сразу же - SELECT:
 
Код:
SELECT * FROM mytable;

В итоге SELECT мне возвращает вместо 'абвгдеёжзиклмнопрстуфхцшщьъэяю' нечто вроде 'абвгде�?жзиклмноп�?�?�?�?�?�?�?�?�?�?�?�?�?�? '. Т.е. половина букв нормальная, половина - нет.
Помогите, плиз, не пойму, где меня кидают ))
18K
08 августа 2007 года
gnumus
52 / / 28.07.2007
C помощью какого инструментария вы это делаете?
Проверьте переменные character_set_client, character_set_result, collation_connection в настройках сервера и/или подключения.
552
08 августа 2007 года
Ivanhoe
373 / / 30.04.2006
Переменные по данным phpMyAdmin:
 
Код:
character set client    utf8
(Глобальное значение)     latin1

character set results   utf8
(Глобальное значение)     latin1

collation connection    utf8_unicode_ci
(Глобальное значение)     latin1_swedish_ci


Базу и таблицу создаю тем же phpMyAdmin'ом, INSERT и SELECT делаю из JSP-страницы. Кодировка везде тоже UTF8.
18K
08 августа 2007 года
gnumus
52 / / 28.07.2007
А вот вы уверены, что ваш jsp при соединении работает в utf-ах? Ведь на сервере стоит латин по-дефолту.

В php например, частенько приходится такое делать:
http://forum.codenet.ru/showpost.php?p=204958&postcount=2
552
29 августа 2007 года
Ivanhoe
373 / / 30.04.2006
Хм... логичное предположение, надо проверить.

Однако, в PostgreSQL все в порядке
7.7K
29 августа 2007 года
g3n3s1s
30 / / 28.10.2005
Вот и у меня та же беда. Вот только к настройкам сервера я не имею, могу выполнять только клиентские запросы(типа SELECT). Есть ли возможность изменить кодировку уже после того, как я вытащил строку из бд?
552
29 августа 2007 года
Ivanhoe
373 / / 30.04.2006
gnumus, таки нет. Хоть они глобальное и латин, а локальное - утф8.

Хотя проблема скорее всего в другом. Точнее, в том же, но с другого боку. В Java кодировка не UTF8, а UTF16. Кстати, это же пораждает и проблемы с длиной строки. Но эт к слову.
7.7K
29 августа 2007 года
g3n3s1s
30 / / 28.10.2005
Я вот одного не могу понять. Пусть даже кодировка другая, но когда я меняю в Internet Explorer кодировку, все равно ничего не меняется. Почему так?
18K
30 августа 2007 года
gnumus
52 / / 28.07.2007
Цитата: g3n3s1s
Вот и у меня та же беда. Вот только к настройкам сервера я не имею, могу выполнять только клиентские запросы(типа SELECT). Есть ли возможность изменить кодировку уже после того, как я вытащил строку из бд?



Сообщение №4 посмотреть на судьба?

7.7K
01 сентября 2007 года
g3n3s1s
30 / / 28.10.2005
Цитата: gnumus
Сообщение №4 посмотреть на судьба?


Понятно как менять кодировку с помощью sql-запроса. Но я не имею доступа к скул-запросам и могу менять кодировку только на стороне клиента. Вот в чем мой вопрос

18K
01 сентября 2007 года
gnumus
52 / / 28.07.2007
Смысл менять кодировку сервера для работы с SQL запросами, если ты не имеешь возможности исполнять эти самые SQL запросы для меня остаётся за кадром. Извини.
7.7K
01 сентября 2007 года
g3n3s1s
30 / / 28.10.2005
ОК, я объясню. Я хочу поменять кодировку средствами браузера или каких-либо других программ. Скул запросы в этом случае для меня не важны
18K
01 сентября 2007 года
gnumus
52 / / 28.07.2007
Э... "Вид - Кодировка"?
Но причём здесь SQL сервера?
7.7K
01 сентября 2007 года
g3n3s1s
30 / / 28.10.2005
В том то и дело что так она не меняется. Когда строка выводится, она появляется в таком же виде, как и у тебя. И при этом какую кодировку я бы ни ставил это не помогает. Вот я и хотел узнать почему? Просто ты уже с этим сталкивался
18K
01 сентября 2007 года
gnumus
52 / / 28.07.2007
Не знаю. Я забыл карты Таро в офисе.

В браузере ты указываешь в какой кодировке выводить полученные данные. В какой кодировке браузер получает данные - зависит от серверного скрипта. В какой кодировке получит данные серверный скрипт от базы зависит от настроек подключения к БД. Сбой может быть в любом месте этой цепочки.

Из того, как поставлен вопрос, я не вижу на него ни одного ответа.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог