Итак: локаль UTF-8. Ubuntu. Консоль.
-------------------------------------------------------------------------
REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866
Function Main ()
local cMsg866, cMsg1251
cMsg866 := '�ਢ�� 866...' //текст в кодировке 866
cMsg1251 := '������ 1251' //текст в кодировке 1251
HB_CDPSELECT("RU866")
? 'HB_CDPSELECT( "RU866" )'
? cMsg866
? cMsg1251
? '====================='
HB_CDPSELECT( "RU1251" )
? 'HB_CDPSELECT( "RUWIN" )'
? cMsg866
? cMsg1251
Return Nil
-------------------------------------------------------------------------
Получаем:
HB_CDPSELECT( "RU866" )
привет 866...
яЁштхЄ 1251
=====================
HB_CDPSELECT( "RUWIN" )
ЇаЁўҐв 866...
привет 1251
привет 866...
яЁштхЄ 1251
=====================
HB_CDPSELECT( "RUWIN" )
ЇаЁўҐв 866...
привет 1251
тоесть все строки можно хранить в старой доброй досовской кодировке, а на выводе система сделает преобразование в читабельную информацию.
вопрос с сортировкой проверяем. зададим массивы строк в 866 и 1251 кодировках. текст:
arr1251:={"Яркий", "синий", "Воздушный", "шарик", "яркий", "Синий", "воздушный", "Шарик"}
arr866:={"яркий", "Синий", "воздушный", "Шарик", "Яркий", "синий", "Воздушный", "шарик"}
естественно строки в НУЖНОЙ кодировке, а тут все видно для наглядности ;-)
--------------------------------
REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866
Function Main()
local cMsg866, cMsg1251,arr866,arr1251,i
cMsg866 := '�ਢ�� 866...' //текст в кодировке 866
cMsg1251 := '������ 1251' //текст в кодировке 1251
arr1251:={"�����", "�����", "���������", "�����", "�����", "�����", "���������", "�����"}
arr866:={"�ન�", "�����", "���������", "��ਪ", "�ન�", "ᨭ��", "���������", "��ਪ"}
HB_CDPSELECT("RU866")
? 'HB_CDPSELECT( "RU866" )'
? cMsg866
? cMsg1251
? '====================='
HB_CDPSELECT( "RU1251" )
? 'HB_CDPSELECT( "RUWIN" )'
? cMsg866
? cMsg1251
HB_CDPSELECT( "RU1251" )
?
?"initial 1251:"
for each i in arr1251
? " ", i
end
?"sorted:"
asort (arr1251)
for each i in arr1251
? " ",i
end
HB_CDPSELECT( "RU866" )
?
?"initial 866:"
for each i in arr866
? " ",i
end
?"sorted:"
asort (arr866)
for each i in arr866
? " ",i
end
Return Nil
-----------------------------------------------------
в результате получаем:
HB_CDPSELECT( "RU866")
привет 866...
яЁштхЄ 1251
=====================
HB_CDPSELECT( "RUWIN" )
ЇаЁўҐв 866...
привет 1251
initial 1251:
Яркий
синий
Воздушный
шарик
яркий
Синий
воздушный
Шарик
sorted:
Воздушный
Синий
Шарик
Яркий
воздушный
синий
шарик
яркий
initial 866:
яркий
Синий
воздушный
Шарик
Яркий
синий
Воздушный
шарик
sorted:
Воздушный
Синий
Шарик
Яркий
воздушный
синий
шарик
яркий
значит сортировка работает корректно!
Комментариев нет:
Отправить комментарий