|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
Приветствую, кто как обеспечивает правильную сортировку узловых значений штатными средствами M? Учитывая, что на кирилице аски коды идут не совсем последовательно: GTM>f i=65:1:122 d w $c(i) ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz GTM>f i=1025:1:1111 d w $c(i) ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕії Может, как вариант - это модифицированный транслит(мапинг кирилических символов, размещенных в алфавитном порядке в asci коды латиницы по возрастанию кода) значений на кирилице в латинку перед записью в узел, а при чтении значений узлов, перед их выводом - обратный транслит?Этот вариант влечёт за собой накладные расходы, ничего другого пока придумать не удалось. Например: ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk АБВГДЕЄЭЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЪЫЬЮЯ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2013, 23:19 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
чуть иначе-транслит кирилических символов размещённых по алфавиту в кирилические, размещённые по возрастанию аски кодов в системе: АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯабвгґдеєжзиіїйклмнопрстуфхцчшщьюя в АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэю ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2013, 23:39 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
Это если не установлен unicod: Код: sql 1. 2. 3. 4. 5. 6.
Если установлен: Код: sql 1. 2. 3. 4. 5. 6.
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. In M mode, the process interprets strings as single byte characters with characters from $Char(0) through $Char(127) encoded as ASCII (M mode). A GT.M process in M mode places no interpretation on characters $Char(128) through $Char (255) – the application is free to use any interpretation it chooses, and ISO-8859 variants are commonly used. There is no distinction between a string of bytes and a string of characters and all bytes are valid characters – the concept of an illegal or a non-canonical character is a non-sequitur in M mode. In UTF-8 mode, the process by default interprets strings as multi-byte characters encoded using UTF-8 (UTF-8 mode). Some sequences of bytes are not defined by the standard, and are considered illegal characters. The process can also interpret a string as a sequence of bytes, and the same string can have different properties (such as its length) when it is considered a sequence of bytes than as a sequence of characters. Except when triggers are used, this interpretation is at the level of the process: the database treats strings as binary data and does not care how they are encoded. So, it is possible for the same database to be concurrently accessed by mumps processes operating in both M mode and UTF-8 mode. Mupip and other processes are not concerned with this distinction. If the database has triggers, since triggers are compiled code, all proceses that use a database must have the same mode. Скачайте с сайда GT.M Acculturation Workshop. http://sourceforge.net/projects/fis-gtm/files/ там про это сказано ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 10:38 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
Приветствую, перед запуском gtm делаю export gtm_chset="UTF-8" поэтому: GTM>write $zchset UTF-8 иначе в консоли GTM GTM>write $zchset M кирилица отображается как-то так '@?' ISO 8859-5 (Latin/Cyrillic) кириллица, включающая символы славянских языков (белорусский, болгарский, македонский, русский, сербский и частично украинский ). В данной раскладке укр. большие буквы ЄІЇ по аски кодам размещены перед началом алфавита (а маленькие - в конце всего алфавита) - что в свою очередь влияет на правильность сортировки укр. слов (ФИО, номенклатуры и т.д. имеющие в своём составе эти символы): 404 Є A0 Ё 403 Є 405 І 406 Ї 40F А 410 Б 411 В 412 Г 413 Д Acculturation Workshop наск. я понял это виртуалка с установленным GT.M, я изначально экспериментировал на ней, после чего установил GT.M на обычном ПК с Debian. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:06 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
user_tiv, Если честно, я не занимался глубоко этими вопросами-у нас латиница. Но я думаю, что какую то альтернативу можно найти. Почему кашевары не отвечают ? Думаю здесь подход одинаковый, что в GT.M что Cache. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:20 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
а в Cache у нас проблем с сортировкой особо нет, подключил нужную локаль и все готово. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:26 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
DAiMor, user_tiv Может зависит от ICU Version ? Они говорят что "GT.M requires at least ICU Version 3.6 to install the functionality related to Unicode." http://download.icu-project.org/files/icu4c/51.1/ ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:31 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
Valeriu, icu у меня 4 ver ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:38 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
user_tiv, Когда просмотр командой [root@GTM gtm603]# locale -a Ваша кодировка присутствует в списке ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:43 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
The mode of a process is controlled by the environment variable gtm_chset. If it is not set, or has a value other than "UTF-8", the process operates in M mode. Within a process the ISV $ZCHset can be used to test the mode. For a process to operate in UTF-8 mode requires: ICU with a level of 3.6 or higher packaged as libicu. GT.M may also require the environment variable gtm_icu_version to be defined (the gtmprofile script attempts to detect and set it, if it is not set, but is not guaranteed to succeed). The environment variable LC_CTYPE (or the environment variable LC_ALL) to specify a UTF-8 locale available on the system. The locale command provides a list of available locales: gtmuser@gtmworkshop7:~$ locale -a C POSIX en_US.utf8 gtmuser@gtmworkshop7:~$ You can use the localedef command to generate additional UTF-8 locales – in this example, a UTF-8 locale for Arabic as used in Jordan is generated. gtmuser@gtmworkshop7:~$ sudo localedef -f UTF-8 -i ar_JO ar_JO.utf8 gtmuser@gtmworkshop7:~$ locale -a C POSIX ar_JO.utf8 en_US.utf8 gtmuser@gtmworkshop7:~$ ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:47 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
ValeriuПочему кашевары не отвечают ? Думаю здесь подход одинаковый, что в GT.M что Cache.Раз Вы настаиваете: ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 16:57 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
DAiMorа в Cache у нас проблем с сортировкой особо нет, подключил нужную локаль и все готово. для рос. локали - проблем нет и для gt.m - исключение разве что c Ё. Для укр. на линуксе по каше - проверю, отпишусь (думаю, что те же грабли, поск. ISO 8859-5 и те же аски коды). Думаю коллеги, что в ISO 8859-5 засунули все кирилические языки и при этом не для всех языков (минимум для укр.) соблюдена очерёдность алфавитного следования символов. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 02:56 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
Valeriuuser_tiv, Когда просмотр командой [root@GTM gtm603]# locale -a Ваша кодировка присутствует в списке ? таки да: root@debian:/home/tiv# locale -a C C.UTF-8 en_US.utf8 POSIX uk_UA.utf8 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 02:57 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
ValeriuDAiMor, user_tiv Может зависит от ICU Version ? Они говорят что "GT.M requires at least ICU Version 3.6 to install the functionality related to Unicode." http://download.icu-project.org/files/icu4c/51.1/ root@debian:/home/tiv# icu-config --version 4.8.1.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 02:59 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
user_tivDAiMorа в Cache у нас проблем с сортировкой особо нет, подключил нужную локаль и все готово. для рос. локали - проблем нет и для gt.m - исключение разве что c Ё. Для укр. на линуксе по каше - проверю, отпишусь (думаю, что те же грабли, поск. ISO 8859-5 и те же аски коды). Думаю коллеги, что в ISO 8859-5 засунули все кирилические языки и при этом не для всех языков (минимум для укр.) соблюдена очерёдность алфавитного следования символов.У нас проекты в том числе в Украине и в Казахстане. Для Украины используем сортирвку Cyrillic3, а в Казахстане и России хватает CacheStandard. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 09:59 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
DAiMoruser_tivпропущено... для рос. локали - проблем нет и для gt.m - исключение разве что c Ё. Для укр. на линуксе по каше - проверю, отпишусь (думаю, что те же грабли, поск. ISO 8859-5 и те же аски коды). Думаю коллеги, что в ISO 8859-5 засунули все кирилические языки и при этом не для всех языков (минимум для укр.) соблюдена очерёдность алфавитного следования символов.У нас проекты в том числе в Украине и в Казахстане. Для Украины используем сортирвку Cyrillic3, а в Казахстане и России хватает CacheStandard. Вероятно в Каше есть то, чего нет в gtm и на уровне gtm нужно будет либо заниматься "транслитом" либо модифицировать розкладку на уровне ОС. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 11:53 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
user_tiv, Я думаю есть смысл задавать вопрос разработчикам GT.M (K.S. Bhaskar) на форуме https://groups.google.com/forum/#!forum/comp.lang.mumps Им даже будет интересно. Пробуйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 12:38 |
|
Обеспечение правильной сортировки узлов глобалей на кирилице в MUMPS.
|
|||
---|---|---|---|
#18+
user_tiv, вы правы, в Cache' есть понятие Collation (сортировка), которое позволяет определить порядок сортировки символов, отличный от порядка следования их кодов. Порядок сортировки, совпадающий с порядком следования кодов, называется стандартным (Cache Standard). В GT.M, по-видимому, такой порядок действует всегда. При этом надо учитывать, что скорость глобального доступа к БД, использующей сортировку, отличную от Cache Standard, может быть на 20-25% ниже по сравнению с Cache Standard. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 12:59 |
|
|
start [/forum/topic.php?fid=39&msg=38504722&tid=1556993]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 154ms |
0 / 0 |