Имя: Пароль:
1C
1С v8
Странная кодировка DBF
0 stmnf
 
22.03.15
21:48
Иногда присылают файлы, которые не читаются нормально ни в кодировке ANSI ни OEM. Читаются только с помощью такого преобразования:

    Стр = Б.ПолучитьЗначениеПоля(Поле.Имя);
    Стрим.charset="windows-1251";
    Стрим.Open();
    Стрим.WriteText(Стр);
    Стрим.Position=0;
    Стрим.charset="CP866";
    Рез=Стрим.ReadText(-1);
    Стрим.Close();

Это каким образом они так кодируют? Как им сказать, что они делают не так?
1 ДенисЧ
 
22.03.15
21:49
Скажи им, чтобы так больше не делали.
А вобще - лучше покажи файлик...
2 stmnf
 
22.03.15
21:51
А как тут прикрепить?
3 stmnf
 
22.03.15
21:56
Да, Стрим - это вот что:

    Стрим = Новый COMОбъект("Adodb.Stream");
    Стрим.Type = 2;
    Стрим.Mode= 3;

Просто выдрал из какого-то примера, забыл уже из какого точно. Думал сначала, там UTF, но в итоге подобрал вышеупомянутый вариант :)
4 Torquader
 
22.03.15
22:01
Если при записи поставить кодировку cp866, а символы писать в Windows, то именно это и получится - раньше это называлось - двойное перекодирование.