parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Есть встроенные в парсер таблицы

Luzhnikovskiy 10.10.2003 12:09

Для отображения %XX достаточно позвать ^#XX (замена, полагаю, очевидна).
Но: это сработает только в том случае, когда кодировка этого %XX совпадает с $request:charset.

Что делать, если не совпадает: (для koi -> win)
1. Грузим в таблицу чарсеты с помощью ^table::load[$MAIN:charsetsdir/нужный.cgf]. Грузить надо koi и в другую таблицу - win
2. Разбиваем %XX%YY%ZZ на байтики (XX, YY, ZZ)
3. Делаем по koi ^koi.locate[char;0x"байтик"]
4. Делаем по win ^win.locate[unicode1;$koi.unicode1]
5. Вычленяем из найденного $win.char XX и делаем ^process[^^#XX]

Муторно, но решаемо.
Понятное дело, не учтены неэскейпящиеся символы (латиница, цифры, минус) и + (пробел)
Ну и конечно ^process[] надо делать один на уже собранную строку ^#XX^#YY^#ZZ...