информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Атака на InternetГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[upd] Проблема с регэкспами и utf-8 03.12.12 21:17  
Автор: Fighter <Vladimir> Статус: Elderman
Отредактировано 03.12.12 22:49  Количество правок: 2
<"чистая" ссылка>
Проблема в следующем: нужно было перевести сайт с ср1251 на utf. Были проделаны стандартные в таких случаях действия и при тестировании на локальной копии сайта все было хорошо, но после переноса на сервер... Регулярные выражения типа preg_match('#^[a-z0-9-]?$#i', $fas) или preg_replace('/[а-яА-Я]?$/i', $vfd) перестали работать. Причем проблема связана именно с использованием '[...]', а модификатор 'u' вообще вырубает выполнение с предупреждением "Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset..." Как с этим бороться? Установить модули, скомпиленные с поддержкой utf? Или есть другие пути?

[upd]
Установка "правильных" модулей исправило ситуацию с латиницей, но с кириллицей проблемы остались(
Переменный размер символом в байтах очень неудобен при... 06.12.12 14:18  
Автор: leo <Леонид Юрьев> Статус: Elderman
Отредактировано 06.12.12 14:19  Количество правок: 1
<"чистая" ссылка>
Переменный размер UTF-8 символов в байтах очень неудобен при реализации регулярок. Поэтому непосредственно в UTF-8 толком никакие регулярки не работают.

Стандартное решение = перед поиском регулярок все переводиться в UTF16/unicode. Проблемы с суррогатными парами при это все равно остаются, но решаются перекодированием в UTF-32.

Ну и в целом - http://site.icu-project.org/
Спасибо, понял. Ушел читать) 06.12.12 15:39  
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach