Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [gt.m] Как перекодировать строки? / 14 сообщений из 14, страница 1 из 1
24.08.2015, 10:02
    #39034728
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
В Кащее есть свои функции для перевода строк из одной кодировки в другую...

Есть ли в gt.m свои аналогичные возможности?
Интересующие кодировки:
- DOS
- Win
- UTF
----------
Cache for Windows (x86-64) 2012.2.2 (Build 801) Fri Dec 7 2012 12:08:23 EST
...
Рейтинг: 0 / 0
24.08.2015, 10:22
    #39034741
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
krvsa,

На сайте можно скачать AcculturationWorkshop.
Там про это есть.
Unicode (ISO/IEC-10646)

GT.M supports international character sets using Unicode. A mumps process can operate in one of two modes: M mode and UTF-8 mode, which is specified by the environment variable gtm_chset at process startup and which is immutable for the life of the process.
...
Рейтинг: 0 / 0
24.08.2015, 10:24
    #39034743
EvLaUy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
krvsa,
что до меня, не доверяю я в этой части казенным функциям. На всех языках, на которых мне доводилось прогить, я всегда писал этот софтвер сам, и за много лет мои функции ни разу меня не подводили. Там делов-то на полчаса максимум.
...
Рейтинг: 0 / 0
24.08.2015, 10:32
    #39034747
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
EvLaUyТам делов-то на полчаса максимум.Ну-ну, в юникод из любой кодировки за полчаса, конвертер напишешь, без применения сторонних библиотек ?
...
Рейтинг: 0 / 0
24.08.2015, 10:32
    #39034748
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
krvsaВ Кащее есть свои функции для перевода строк из одной кодировки в другую...

Есть ли в gt.m свои аналогичные возможности?
Интересующие кодировки:
- DOS
- Win
- UTF
----------
Cache for Windows (x86-64) 2012.2.2 (Build 801) Fri Dec 7 2012 12:08:23 EST $ZCOnvert - там тоже есть, хоть и немного другой
...
Рейтинг: 0 / 0
24.08.2015, 10:36
    #39034752
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
EvLaUyя всегда писал этот софтвер сам
Написали уже...
Просто вдруг есть уже что-то в самом gt.m, а мы не вкурсе.
...
Рейтинг: 0 / 0
24.08.2015, 10:48
    #39034763
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
DAiMor $ZCOnvert - там тоже есть, хоть и немного другой
Что-то там не густо вариантов перекодировки...

авторThe valid (case insensitive) codes for character set encoding for expr2 and expr3 in the three-argument form are:
"UTF-8"-- a multi-byte variable length encoding form of Unicode.
"UTF-16LE"-- a multi-byte 16-bit encoding form of Unicode in little-endian.
"UTF-16BE"-- a multi-byte 16-bit encoding form of Unicode in big-endian.
"UTF-16"-- a multi-byte 16-bit encoding form which uses the same endian level as that of the current system.
...
Рейтинг: 0 / 0
24.08.2015, 10:50
    #39034766
EvLaUy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
DAiMorНу-ну, в юникод из любой кодировки за полчаса, конвертер напишешь, без применения сторонних библиотек ?
Unicode - нет, но ТС его и не упоминал.
...
Рейтинг: 0 / 0
24.08.2015, 10:56
    #39034774
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
EvLaUyDAiMorНу-ну, в юникод из любой кодировки за полчаса, конвертер напишешь, без применения сторонних библиотек ?
Unicode - нет, но ТС его и не упоминал.он упомянул UTF - Unicode Transformation Format, да и смысл конвертации текста если она не умеет конвертировать в/из UTF
...
Рейтинг: 0 / 0
24.08.2015, 11:13
    #39034797
EvLaUy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
DAiMor,
ну не знаю. Не хочу втягиваться в терминологический спор. Могу только сказать, что для двухбайтных кодировок все необходимые мне переодировщики я тоже успешно реализовал сам. А какая их них как точно называется - мне не суть важно.
...
Рейтинг: 0 / 0
28.04.2016, 14:13
    #39226653
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
Столкнулись с проблемой перекодировки DOS<->Win в Линуксе...
Наша функция не перекодирует следующие символы "Ёё№"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
convert(Text,Type) ; Переформат Dos - Windows для строки
  n s1,s2,i
  s Type=$g(Type,1)
  f i=128:1:255 s s1=$g(s1)_$c(i)
  s s2="░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫"_$c(12)_"┘┌█▄▌▐▀"
  s s2=s2_$c(12)_"ёЄєЇї"_$c(15,18)_"ё∙·√"_$c(27)_"¤■ "
  s s2=s2_"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
  s s2=s2_"абвгдежзийклмнопрстуфхцчшщъыьэюя"
  q $s(Type=1:$tr(Text,s2,s1),1:$tr(Text,s1,s2))
Т.к. нет взаимно однозначного соответствия для замены.

Может есть какие-то "стандартные" приемы для перекодировки?
Так же интересна перекодировка у UTF-8...

Вот текст программы картинкой, а тут символы некоторые заменились... Модератор: исправил
...
Рейтинг: 0 / 0
28.04.2016, 15:33
    #39226751
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
Оказывается такую тему я уже создавал... Объединить бы их в одну?
Модератор: исполнено
...
Рейтинг: 0 / 0
29.04.2016, 08:29
    #39227203
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
krvsa ,

Проще всего экспортировать из Caché нужную Вам локаль и в ней посмотреть уже готовые таблицы перекодировок: CP866<>CP1251<>KOI8<>и т.д.
А в самом коде GT.M лучше использовать соответствующие коды [$c(код)] вместо символьного представления для избежания недоразумений: ведь и сам исходник Вашей программы может быть сохранён в разных кодировках и тогда могут быть проблемы. Пример с sql.ru выше тому подтверждение.
...
Рейтинг: 0 / 0
29.04.2016, 11:16
    #39227308
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gt.m] Как перекодировать строки?
servitПроще всего экспортировать из Caché нужную Вам локаль и в ней посмотреть уже готовые таблицы перекодировок: CP866<>CP1251<>KOI8<>и т.д.
Передам это нашему админу, пусть обдумает это...
servitведь и сам исходник Вашей программы может быть сохранён в разных кодировках и тогда могут быть проблемы.
У нас подход такой:
- есть системные программы, которые имеют одинаковые названия но одни есть в Каше, а другие в ГТ.М и код у них разный, под соответствующую СУБД
- все остальные программы обращаются только к системным
Т.ч. исходники системных программ будут сохраняться в нужной кодировке, это не проблема.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [gt.m] Как перекодировать строки? / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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