![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Marlik |
|
||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Доброго времени суток. Ситуация такая, есть дамп mysql в utf8, заливаю его в базу. Смотрю на базу:
Все таблицы в utf8_general_ci , текст русский, читабельный. Далее открываю форму регистрации, идет выбор страны, региона, города. То есть по событию Onselect() запускается jQuery, затем с помощью ajax делаем запрос к *.cgi скрипту, вот скрипт:
В html странице стоит кодировка:
Так как ajax использует utf8 по умолчанию, особо не парюсь. Тем более данные идут в цифре то есть id=312. Принимаю в *.cgi скрипте параметры делаю выборку из базы, кодирую в json и возвращаю.
На странице получаю ?????? вместо русского текста. Куда рыть подскажите? Это сообщение отредактировал(а) Marlik - 8.10.2013, 15:12 |
||||||||||||
|
|||||||||||||
| Grost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 26.8.2010 Где: Москва Репутация: нет Всего: нет |
Могу предложить в коде использовать прагму utf8.
У меня похожее было с шаблонами, но как только в контроллере вызывающий шаблон ставлю use utf8; то всё становится нормально Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Спасибо, не помогло...
|
|||
|
||||
| Jimy |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
Можно проверить еще кодировку самого файла скрипта. Если он не utf-8 и в самом скрипте присутствует кириллица в виде хардкода, то при, например, объединении строк будет портится кодировка.
Других идей не приходит. Но, думаю, локализовать место, в котором происходит искажение, не трудно. |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 2 Всего: 14 |
попробуйте для переменной в utf8 сделать Encode::_utf8_on
|
|||
|
||||
| Jimy |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
И еще вдогонку. Можно проверить флаг utf8 у строк перед отправкой ajax'ом. Если я не ошибаюсь, он не должен быть установлен при отправке данных клиенту. Но если и ошибаюсь, то варианта всего два - можно перебрать
|
|||
|
||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Работаю в Ubuntu, все стоит по utf8. Спасибо. |
|||
|
||||
| Marlik |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Возвращает ноль.
Возвращают вопросики. Куда копать? Спасибо. |
||||||
|
|||||||
| Grost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 26.8.2010 Где: Москва Репутация: нет Всего: нет |
Чем коннектитесь к базе?
Может стоит при коннекте указать mysql_enable_utf8 = 1? Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
| Jimy |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
||||
|
||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Кажется разобрался... была база кривая. Поставил другой дамп, теперь правда не вопросики а в кодировке ISO-8859-1 все лезет, причем посмотрел в декодере Лебедева, часть символов все-таки вопросиками... Пока думаю как быть и что делать?
Добавлено @ 13:57
К базе коннектюсь скриптом на Perl. В топе концовка. Мне кажется вот такие варианты: 1. База в неправильной кодировке. 2. CGI неправильно передает кодировку, несмотря на то что выставил utf8. Как лечить, наверное попробовать взять рабочую базу, попробовать с ней. Второй вариант, пойти с горя напиться, проснутся в кутузке, и додумывать куда копать? ))) Попробовал 100% рабочую базу. Выходит такая-же хрень... буду думать что-то с Encode. На всякий случай, записал хэш вывода из базы тут-же в файл. В файле кирилица на ура. Пытать CGI? Это сообщение отредактировал(а) Marlik - 9.10.2013, 15:05 |
|||
|
||||
| Marlik |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Мдяяяяяя.... вот что значит документацию не читать!!! Сработал такой вариант:
А я делал так:
Функция _utf8_on возвращает либо ноль либо один. Она просто выставляет флаг для переменной! Всем спасибо! |
||||
|
|||||
![]()
|
| Правила форума "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. |