Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Переменный размер символом в байтах очень неудобен при... 06.12.12 14:18 Число просмотров: 3931
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 06.12.12 14:19 Количество правок: 1
|
Переменный размер UTF-8 символов в байтах очень неудобен при реализации регулярок. Поэтому непосредственно в UTF-8 толком никакие регулярки не работают.
Стандартное решение = перед поиском регулярок все переводиться в UTF16/unicode. Проблемы с суррогатными парами при это все равно остаются, но решаются перекодированием в UTF-32.
Ну и в целом - http://site.icu-project.org/
|
<web building>
|
[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
|
|
|
|