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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Regexp и UTF8, Не проходит русский текст 
:(
    Опции темы
Error202
  Дата 18.5.2011, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Скрипт в UTF-8
Выводит форму... 
далее проверяет введенное по шаблону
Код

^[a-zA-Zа-яА-Я0-9\_\ \-]+$


Ввожу форму: "привет"
Скрипт ругается, что введенное не соответствует шаблону...


В чем может быть проблема?


P.S. Входящая строка из формы тоже в UTF-8

P.S.2 JavaScript на форме не ругается при проверке введенного значения


Это сообщение отредактировал(а) Error202 - 18.5.2011, 15:22
PM MAIL WWW   Вверх
Pfailed
Дата 18.5.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Строка в скрипт приходит с поднятым utf флагом?


--------------------
PM MAIL   Вверх
Error202
Дата 18.5.2011, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Что за флаг?
PM MAIL WWW   Вверх
Pfailed
Дата 18.5.2011, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



perldoc utf8
utf8::is_utf8
utf8::upgrade



--------------------
PM MAIL   Вверх
Error202
Дата 18.5.2011, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ставлю 

Код

Encode::_utf8_on($value);


и после отправки страницу "выворачивает" неизвестной мне кодировкой...
При этом просто форма нормально отображается...

Если ставлю use utf8; то после отправки все ок, но сама форма "выворачивается"...
PM MAIL WWW   Вверх
Pfailed
Дата 18.5.2011, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Для начала смотрим что возвращает utf8::is_utf8 на пришедшую строку. Если ложное значение, то делаем на строке utf8::upgrade.


--------------------
PM MAIL   Вверх
Error202
Дата 18.5.2011, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



utf8::is_utf8 - ложное значение (непонятно только почему)
после utf8::upgrade - никаких изменений :(


Lingua::DetectCharset показывает, что введенные данные в UTF8

Это сообщение отредактировал(а) Error202 - 18.5.2011, 16:59
PM MAIL WWW   Вверх
Pfailed
Дата 18.5.2011, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



С utf8::upgrade ошибся, нужен utf8::decode.
Помимо этого регулярное выражение тоже нужно "заутээфить"
Вот пример, до utf8::decode нет совпадения, после есть.
Код

use strict;

my $str = 'Мама мыла раму';
my $regexp;
{
    use utf8;
    $regexp = qr/^[a-zA-Zа-яА-Я0-9\_\ \-]+$/;
};

$str =~ $regexp
    or warn 'failed';

utf8::decode($str);
$str =~ $regexp
    or warn 'failed';




--------------------
PM MAIL   Вверх
Error202
Дата 19.5.2011, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо! Разобрался
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




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


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

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