Работа с разными таблицами кодировки в Cache

-Serg-
Дата: 19.10.2005 14:48:01
Проблема.
Считывается в Cache текст в кодировке utf-8.
Есть ли стандартные методы перекодировки в Cache?

Например, из utf-8 в win и т.д.
Maksim UM
Дата: 19.10.2005 15:03:46
в Cache >=5 есть функция - $ZCONVERT
нужно установить правильно кодировку
текущего устройства, а затем
Set a=$ZCONVERT(a,"O","WIN1251")
или что-то в этом духе...
-Serg-
Дата: 19.10.2005 16:31:50
похоже на правду, но что-то не работает
выдает <ILLEGAL VALUE>

возможно, имя таблицы в опциях, в понимании Каше не так звучит.
Метод научного тыка не помог. В документации ничего не нашел.

Где же посмотреть, как звучит в понимании Каше имена таблиц кодировки????
Maksim UM
Дата: 19.10.2005 16:55:15
Посмотреть таблицы можно с помощью утилиты:
d Dump^%NLSMISC
ну я
Дата: 19.10.2005 16:58:15
-Serg-
Проблема.
Считывается в Cache текст в кодировке utf-8.
Есть ли стандартные методы перекодировки в Cache?

Например, из utf-8 в win и т.д.

$zcvt(str,"I","UTF8")
LittleCat
Дата: 19.10.2005 17:05:12
Таблицы посмотреть/создать/отредактировать можно через cnls.exe. Простой способ посмотреть установленные таблицы - выполнить в командной строке Do Dump^%NLSMISC, можно увидеть что-то подобное
I/O Table Name    Offset:Type     Source Global
-------------- ------------- -------------
UnicodeLittle In E62954:Struct8 %nls("Src","XLT","UnicodeLit","CP1251")
Out E62960:Struct8 %nls("Src","XLT","CP1251","UnicodeLit")
UnicodeBig In E6293C:Struct8 %nls("Src","XLT","UnicodeBig","CP1251")
Out E62948:Struct8 %nls("Src","XLT","CP1251","UnicodeBig")
SAME In E60400:Struct8
Out E60408:Struct8
UTF8 In E62924:Struct8 %nls("Src","XLT","UTF8","CP1251")
Out E62930:Struct8 %nls("Src","XLT","CP1251","UTF8")
BIN In E60400:Struct8
Out E60408:Struct8
RAW In E60400:Struct8
Out E60408:Struct8
CP866 In E61588:Struct8 %nls("Src","XLT","CP866","CP1251")
Out E61594:Struct8 %nls("Src","XLT","CP1251","CP866")
HTML In E61BD0:Struct8 %nls("Src","XLT","EscHTML","CP1251")
Out E61BDC:Struct8 %nls("Src","XLT","CP1251","EscHTML")
JS In E61C2C:Struct8 %nls("Src","XLT","EscJS","CP1251")
Out E61C38:Struct8 %nls("Src","XLT","CP1251","EscJS")
KOI8R In E61C44:Struct8 %nls("Src","XLT","KOI8R","CP1251")
Out E61C50:Struct8 %nls("Src","XLT","CP1251","KOI8R")
LatinC In E61C5C:Struct8 %nls("Src","XLT","LatinC","CP1251")
Out E61C68:Struct8 %nls("Src","XLT","CP1251","LatinC")

В первом столбце как раз имена таблиц, которые можно подставить в $ZCVT()
-Serg-
Дата: 20.10.2005 16:57:22
Спасибо.
работает все.
Единственно жалко, что не все таблицы описаны стандарным образом.
Рально можно пользоваться только перекодировкой koi8-r и utf-8 :-(
Николаев Михаил
Дата: 20.10.2005 17:02:52
Вместо WIN1251 надо писать CP1251. Но у меня это дело не помогает, в таблице UTF8 для русских символов есть две области, похоже в одну попадают из восьмибитных кодировок, в другую из юникоде. Пришлось все перекодировать шаманством, ставить базу юникоде. Самое забавное, что при выгрузке в cdl я использую CP1251 однако обратно загрузить их не могу. Приходится загружать в восьмибитную базу, оттуда выгружать в хмл.
LittleCat
Дата: 20.10.2005 17:19:12
-Serg-
Спасибо.
работает все.
Единственно жалко, что не все таблицы описаны стандарным образом.
Рально можно пользоваться только перекодировкой koi8-r и utf-8 :-(

Так если что-то не устраивает, можно свою таблицу описать, такую, какую хочется :-)
-Serg-
Дата: 24.10.2005 14:04:09
LittleCat
-Serg-
Спасибо.
работает все.
Единственно жалко, что не все таблицы описаны стандарным образом.
Рально можно пользоваться только перекодировкой koi8-r и utf-8 :-(

Так если что-то не устраивает, можно свою таблицу описать, такую, какую хочется :-)


типа utf-8 ??? имеющей несколько миллионов комбинаций ???
например, utf-16 ???
Хотелось бы такие вещи иметь от разработчиков, стандартные. А не тулить самопалы при каждом ежемесячном обновлении версии Каше. :-(((