UTF8

From
Stas Degteff (2:5080/102.1)
To
Oleg Nosov
Date
2005-12-17T03:30:14Z
Area
RU.UNIX.FTN
Hello Oleg!

16 Дек 05 08:36, you (2:5030/952.11) wrote to me:

ON>>> 1. вывод на экран - как ты сам говоришь принципиальных пробем не
ON>>> составляет, так как формат базы писем известен
ON>>> 2. Ввод писем в базу - если задать, к примеру, что кодировка
ON>>> системы utf8, кодировка базы - например 866 или latin-1 или "какой
ON>>> там ещё".
ON>>>    Затем получается цепочка "ввод текста -> запись в базу"
ON>>> преобразуется в
ON>>> такую: "ввод текста -> (если utf8) преобразование из формата ввода
ON>>> в формат хранения базы -> запись в базу".
ON>>>    Тут получается костыль - так как надо явно задавать кодировку
ON>>> системы и кодировку базы.
ON>>>    Я не прав?
SD>> Не прав в том, что считаешь кодировку сообщений в базе фиксированной.

ON>     Так в каждом письме предполагается клудж (тот же голдед CHRS или
ON> CHARSET), где явно прописано в какой оно кодировке, а в редакторе/читалке
ON> кроме использования клуджа в конфиге прописано значение по-умолчанию для
ON> этого клуджа, которое используется если его нет (опять же в голдеде
ON> XlatImport CP866).

ON>     То есть для вывода на экран надо только научить деда показывать юникод,
ON> а данные для перекодировки все есть.

Не только показывать, но и принимать введенное с клавиатуры.

SD>> Конечно можно, считывая unicode, записывать сообение в базу уже не в
SD>> unicode, а в том cpXXXX, к которому относятся введенные
SD>> unicode-символы. Этот путь требует серьёзной переделки кода.

ON>     Почему?  Мне кажется надо только переписать модуль ввода... То есть
ON> если дед использует для получения текста функции ОС, то если задать, что на
ON> входе unicode, то дальше надо сделать что-то типа iconv и затем записать в
ON> базу в нужной кодировке.

А которой? В CP866, KOI8-R, CP1251, ISO8259-5? а если введены символы из нескольких кодовых страниц?


Stas


--- GoldED+/W32-MINGW 1.1.5-b20051207 (WinNT 5.0.2195-SP4 AMD_Athlon)
 * Origin: Grumbler mail station, Ekaterinburg. (2:5080/102.1)
SEEN-BY: 46/50 47/77 50/12 203 400/814 450/186 1024 451/30 454/9 465/285
SEEN-BY: 469/418 4646/15 5000/5000 5001/5001 5002/50 79 5003/57 5010/53
SEEN-BY: 5011/13 5012/23 46 5015/10 28 5019/31 5020/154 175 400 545 715 758
SEEN-BY: 5020/830 937 1523 1604 2020 2142 2238 2871 4441 5021/29 5022/128
SEEN-BY: 5025/3 750 5026/45 5027/16 5030/49 115 436 556 966 1063 1900 5031/47
SEEN-BY: 5031/70 5035/38 5036/34 5040/47 5042/13 5043/3 5049/50 5053/16 5054/1
SEEN-BY: 5054/8 9 18 37 45 63 67 5059/9 37 5061/120 5062/1 10 5063/3 5067/2
SEEN-BY: 5069/7 5070/1222 5077/70 5080/41 68 72 80 102 135 136 172 180 185 196
SEEN-BY: 5080/223 229 232 801 1003 5083/21 5085/13 5090/108 113 5095/20
SEEN-BY: 5096/18 5099/11 6000/12 254 6001/10 6090/1
PATH: 5080/102 68 80 5020/4441 545 5054/1 37