![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
les |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 24.4.2006 Репутация: нет Всего: нет |
Вот такой код
При прогоне через Komodo файл utf.txt создается как положено, а при консольном запуске того же файла, той же версией Perl получается пустой... Че подправить надо? Подскажите плиз... Это сообщение отредактировал(а) les - 6.5.2008, 22:09 |
|||
|
||||
les |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 24.4.2006 Репутация: нет Всего: нет |
Лана.. всё..
добавил use Encode и в консоли тож запахало... но почему в IDE не ругался и работал.... не приятно. |
|||
|
||||
les |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 24.4.2006 Репутация: нет Всего: нет |
Вопрос такого плана...
Есть ли какие органичение на использование рег.выраж с utf8??? Потому как если например в переменной $my будет строка в Юникоде, то после
Можно ли как это побороть, либо есть пути обхода этой проблемы.... |
|||
|
||||
JUmPER |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 22.8.2006 Репутация: нет Всего: 3 |
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной |
|||
|
||||
les |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 24.4.2006 Репутация: нет Всего: нет |
Не, не помогло... вот это пример
в $news уходит тольео France и Presse , как это исправить? Всё тут в UTF8 и сам скрипт, и само данные... Это сообщение отредактировал(а) les - 7.5.2008, 19:35 |
||||||
|
|||||||
tolkien |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
попробуй из utf8->acsii
обработать рег выражением результат из acsii->utf8 |
|||
|
||||
konstant1n |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.4.2008 Репутация: нет Всего: нет |
для начала, как у же сказали
далее, если мне не изменяет память, то \w это word-character для ASCII, для юникода надо использовать классы символов, вроде p{Letter} и тд. Подробнее см сюды http://www.regular-expressions.info/unicode.html И еще: судя по коду задача разбить некий текст на слова. Вы ищите последовательность букв и считаете это словом. Как насеет сокращений "т.д." , емайл адресов, слов "через-тире" и проч? Чтоб не возится с кучей исключений лучше разделять по пробелам, более точно по white-space. Все что не white-space до следующего white-space это слово. Обычно еще перед этим проходятся по тексту убирают white-space вначале/вконце текста и в самом тексте меняют мultiple white-space -> single white-space ( s/\s+/\s/g; ) |
|||
|
||||
les |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 24.4.2006 Репутация: нет Всего: нет |
Да... Спасибо, про спец символы вроде правда.... и \w будет тогда \p{IsWord} По поводу разбора.... Я привел пример такой, чтоб было видно на чем застрял.. Я текс из html выдергиваю, поэтому он проходит несколько степеней очистки. |
|||
|
||||
JUmPER |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 22.8.2006 Репутация: нет Всего: 3 |
с директивой use utf8 \w изменяется для обработки уникода.
кстати, если в коде есть не латинские буквы (я про кирилицу в рег выражении), то было бы здорово сохранить исходник в соответствующй кодировке (utf8). --------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
||||
|
||||
amg |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Что-то я засомневался, ведь, судя по документации, use utf8 должно влиять только на интерпретацию перлом текста скрипта, и решил проверить.
Вывод: документация, вроде, не врет, use utf8; не влияет на распознавание букв. Приятным сюрпризом для меня оказалось, что кириллические буквы в юникоде подходят \w даже без use locale. Хотя сейчас вспомнил, что об этом уже говорилось здесь. Чтобы работать со строками в предсавлении UTF8, их сначала нужно декодировать. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |