powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
11 сообщений из 11, страница 1 из 1
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36839392
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w $zcvt($zcvt("& # 1 0 8 2 ;","I","HTML"),"I","UTF8")
?
(Дал с пробелами, иначе браузер преобразует в "к")

w $c(1082) дает пусто

Возможно ли вообще на неюникодовом каше выполнить это преобразование?
Что-то не могу сообразить, как.

Подскажете?
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36839395
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задачка, собственно простая - распарсить страницу из интернета, часть текста которой преобразована в xxx;
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36839567
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov , теоретически с этим делом работает пара методов

Код: plaintext
w ##class(%CSP.Page).EscapeHTML("строка")
Кодирует

Код: plaintext
w ##class(%CSP.Page).UnescapeHTML("escape_строка")
Декодирует...

Но у меня не юникодовое Каше - твой пример перекодируется только в "?"...
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36839576
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovw $c(1082) дает пусто
Так функция работает в пределах от 0 до 255...
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36839744
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovw $c(1082) дает пусто
потому что $char воспринимает в качества аргумента байт.

Попробуйте $ZWCHAR
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36839749
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w $zcvt($zcvt("& # 1 0 8 2 ;","I","HTML"),"I","UTF8")

Опять же тут в последнем преобразовании ошибка вроде.

Нужно не ,"I","UTF8" а ,"O","UTF8"
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36839848
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PtnНужно не ,"I","UTF8" а ,"O","UTF8"
Пробовал

Код: plaintext
w $zcvt($zcvt("&_#_1082_;","I","HTML"),"O","UTF8")
Вернуло "?"...
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36840035
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"I" или "O", для кодировок, зависит от версии Cache
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
USER>w $zcvt($zcvt("& #1082;","I","HTML"),"I","UTF8")
?
USER>w $zv
Cache for Windows (x86- 32 )  2008 . 1 . 1  (Build 579U) Wed Jul  2   2008   15 : 39 : 29  EDT
USER>w $zcvt("& #1082;","I","HTML")
к
USER>
так как #1082, это все таки символ Unicode, на Unicode сервере, конвертировать уже не нужно
а вот на 8-битном сервере, должно работать именно с "I"
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36851525
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa kolesov , теоретически с этим делом работает пара методов

Код: plaintext
w ##class(%CSP.Page).EscapeHTML("строка")
Кодирует

Код: plaintext
w ##class(%CSP.Page).UnescapeHTML("escape_строка")
Декодирует...

Но у меня не юникодовое Каше - твой пример перекодируется только в "?"...

Потому, что
ClassMethod UnescapeHTML(in) As %String [ CodeMode = expression, Final, ProcedureBlock = 1, ServerOnly = 1 ]
{
$zconvert(in,"I","HTML")
}

;)
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36851527
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor
так как #1082, это все таки символ Unicode, на Unicode сервере, конвертировать уже не нужно
а вот на 8-битном сервере, должно работать именно с "I"
Боюсь, это не так. Похоже, $zcvt в 8-битной версии поддерживает только UTF8. Никаких юникодов. Хоть I, хоть O...
Как вариант - лезть в настройки локали и добиваться нужного результата через таблицы трансляций.
Правда, в новых версиях (где нет cnls.exe) разобраться с локалью довольно трудно...

;)
...
Рейтинг: 0 / 0
Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
    #36851562
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesovw $zcvt($zcvt("& # 1 0 8 2 ;","I","HTML"),"I","UTF8")
?
(Дал с пробелами, иначе браузер преобразует в "к")

w $c(1082) дает пусто

Возможно ли вообще на неюникодовом каше выполнить это преобразование?
Что-то не могу сообразить, как.

Подскажете?
Как вариант:
Код: plaintext
1.
w $zcvt($zwc( 1082 ),"I","UnicodeLittle")

DAiMor"I" или "O", для кодировок, зависит от версии Cache
"I" - из заданной третьим параметром кодировки в текущую;
"O" - из текущей кодировки в заданную третьим параметром.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Unicode. Как преобразовать в текст символ "& # 1 0 8 2 ;"?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]