| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > MySql и русские букв? |
| Автор: unkis 13.9.2005, 12:58 | ||
Ребята вот так вот я создаю таблику
В поле FName должны хранится русские буквы, но там вопросики, что делать? |
| Автор: PARROT 13.9.2005, 15:06 |
| setlocale(LC_ALL, "ru_RU.CP1251"); |
| Автор: Бонифаций 15.9.2005, 08:12 | ||||
Надо еще настроить клиентскую часть. Первым делом выполни запрос SET NAMES CP1251; (вместо cp1251 - конечно поставь свой charset, который на клиентской машине) |
| Автор: Mal Hack 15.9.2005, 13:03 | ||
Это локаль для PHP... А вообще поиск рулит. http://forum.vingrad.ru/index.php?showtopic=58170&view=getnewpost |
| Автор: onsh76 4.6.2006, 06:48 | ||||
| Теперь моя очередь раскрутить наболевшую тему... Итак, что имеем: Сервер: 5.0.21 на виндах ХР Дефолтовая кодировка сервера: utf-8; Создал базу в кодировке utf-8; Создал таблицу типа InnoDb в кодировке utf-8. В notepad-e набил вот такой вот стэйтмент и сохранил его в файле с кодировкой utf-8. Делаю: copy statement from open file and paste it to the mysql console:
Результат видите выше. Для подтверждения привожу ниже значения env.variables сервака:
Оговорюсь сразу: конфиг.файл сервака подправить не смогу - хостер не разрешает. По дефалту сервак и все базы выставлены на utf-8, и меня лично это вполне устраивает, данных не очень много, экономить нет смысла. Спасибо за помощь, коллеги! |
| Автор: igorold 5.6.2006, 07:23 |
| а можно посмотреть описание полей id, grad_id, code, name, sort_order, status ??? |
| Автор: Ignat 5.6.2006, 09:09 |
А SSH-клиент, в котором открыта консоль, тоже работает в UTF-8 |
| Автор: onsh76 5.6.2006, 09:27 | ||
| igorold, Ignat, Спасибо за заботу. Прилагаю то, что упустил. Значит все описанное выше уместно для моего домашнего компа, т.е. mysql client использовался под виндовским шеллом ( известным также как дос- command prompt) и соответственно SSH-client не использовался. У хостера нет такой фичи, как ssh соединений, только telnet. Вот что интересно, я законнектился с помощью putty утилиты посредством телнет-а к хостеру, вызвал mysql, создал таблицу:
Утилита putty была выставлена на utf-8 (Window->Translation). Открыл файлик сохраненный в utf-8, в котором сохранил данные для загрузки в таблицу, copy & paste insert statement (смотри выше мой пост), commit, далее выборка из таблицы и нет проблем - все работает пучком .... И у меня и у хостера сервак и база создана в utf-8, только хостинг бежит на linux-e, а дома у меня виндовоз. В чем же дело-то - в виндах что-ли? |
| Автор: Ignat 5.6.2006, 09:35 | ||
Ага... Если быть точным - в 866 кодировке досшелла =)) если хочется выполнить тоже самое на винде, то можно редиректом stdin:
|
| Автор: onsh76 5.6.2006, 10:22 | ||
| Ignat, Ну спасибо дружище... Выручил Я над этой хренотенью бился уже не один день, огромный тебе респект за это! Пока еще сам не могу это сделать - постов маловато - добавь себе плюсик в репу. Единственное - маленькая проблемка в вопросе тестирования: через веб приложение написанное на Java, я вижу контент в требуемой кодировке через броузер. Ну и опять же, через виндовский шелл - кракозяблики, несмотря на то, что после логина я выполнил вот это:
Опять прелести от мелкомягких, что-ли? Какой же клиент лучше использовать тогда? |
| Автор: Ignat 5.6.2006, 10:29 |
Не умею Это всё к вопросу о кодировке cp866. Не знаю... У меня разработка преимущественно на *nix'ах, там этих проблем нет |
| Автор: onsh76 5.6.2006, 12:36 |
Сразу видно - скромный парень Свой вклад я внес, за тебя похлопотал твоему коллеге по форуму. Я думаю есть смысл добавить в FAQ то, с чем я боролся - глядишь поможет еще кому-нить... |