Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSON + база в cp1251, Проблемы с кодировкой 
V
    Опции темы
sklins
Дата 10.11.2013, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.9.2012

Репутация: нет
Всего: нет



Здравствуйте. Такая проблема у меня.
Дано: база MySQL, кодировка cp1251, на сайте тоже кодировка cp1251. С сайта аяксом отправляется json (как я понимаю, он всегда utf-8), дальше обрабатываю данные с помощью JSON::from_json, далее данные пишутся в базу. В базе получаются кракозябры. Не могу сообразить, в_какую/из_какой кодировки делать encode/decode. Пробывал различные варианты, но не получается. Модуль encode работает только со скалярами, хэш после from_json ему скормить нельзя.  Из идей, только делать foreach по получившемуся хэшу, но считаю это костылём. Кодировку базы и сайта менять не могу.
Помогите, пожалуйста, правильно решить эту проблему.
PM MAIL   Вверх
Jimy
Дата 11.11.2013, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



После подключения к БД и перед тем местом, где нужно работать с utf-8, выполните sql запрос:
Код

SET NAMES utf8;

PM   Вверх
Bulat
Дата 11.11.2013, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Каким методом идет запись в БД??


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
sklins
Дата 11.11.2013, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.9.2012

Репутация: нет
Всего: нет



Jimy, подключается через конструктор (готовая CMS), так что поменять строку подключения не могу.
Bulat, пишу с помощью do из модуля DBI.
PM MAIL   Вверх
Bulat
Дата 11.11.2013, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Ну смотри, данные в базу записываются("биндятся") либо в виде скаляров, либо массивом.  Хеш ты ему тоже скормить не можешь. Поэтому

Цитата(sklins @  10.11.2013,  22:53 Найти цитируемый пост)
 Модуль encode работает только со скалярами, хэш после from_json ему скормить нельзя.  Из идей, только делать foreach по получившемуся хэшу, но считаю это костылём.


вполне нормальное решение.

В крайнем случае, перед добавлением строки кода, добавь строчку с комментарием, что-то типа "safe-hack". Не все костыли одинаково вредны.  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
sklins
Дата 11.11.2013, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.9.2012

Репутация: нет
Всего: нет



В конце концов так и сделал)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0721 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.