![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| kavkaz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 26.12.2007 Репутация: нет Всего: 2 |
Есть скрипт1 который отправляет данные формы скрипту2, далее скрипт2 возвращает JSON скрипту 1.
Использую fastcgi. отправляю через LWP::UserAgent
данные записываю в файл, в бд (charset utf8). далее в хэш %js из которого далее будет делаться json (use JOSN::XS) я записываю данные пришедшие из формы(назовем их data1) + данные запрошенные из БД (назовем их data2) делаю $json->asccii(1)->encode(\%js); и это все добро принимает скрипт1. Декодируем my $out = $json->utf8(1)->decode($res->content() ); Речь про символы кирилицы. В описанном алгоритме скрипту 1 в ответ приходят крякозябры в data1. data2 отображаются корректно . Теперь ньюасны. 1. Пришедшие данные записываются в текстовый файл. Если его прочитать то увидим корректное отображение кириллических символов. 2. Пришедшие данные также корректно записываются в БД. 3. При коннекте к БД в атрибутах использую ключ mysql_enable_utf8 => 1. При этом флаге при считывании из БД данных функция Encode::is_utf8($string_from_DB) возвращает TRUE, без флага FALSE. 4. Данные пришедшие из формы, перед вставкой в data1 Не декодирую ( Encode::decode('utf8',$data_from_form)). В данном случае Encode::is_utf8($string_from_form) возвращает FALSE. Решил проблему так: все данные перед вставкой в json должны отдавать Encode::is_utf8($string) значение TRUE, для этого данные из формы, которые вставялю в json я пропускаю через Encode::decode('utf8',$data_from_form). ТОгда ответ нормальный. Я так понимаю у перла есть что то вроде внутреннего стандарта, и когда я ему скармливаю данные в utf8 он конвертирует их в свою кодировку, работает с ними, а когда я записываю в БД или в файл он снова переконвертирует данные в utf8. В случае с json он этого не делает Вопрос: мне так и работать с данными, проверяя их и декодируя если надо, или можно как то перлу объяснить при вставке в json что надо вставлять utf8? ps Извиняюсь если некоторые моменты не до конца описал, могу уточнить. |
|||
|
||||
| kavkaz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 26.12.2007 Репутация: нет Всего: 2 |
Вопрос перерос в другой, сделаю новую тему, выложу
Результат работы с JSON: ему Всегда данные подавать нужно в utf8, а не в кодировке "внутреннего стандарта перла" |
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |