![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TXMLDocument проблема с кодировкой [D7, XP]
Очень Злой © (2013-02-11 11:42:00)
...
EDDirname: TEdit;
...
var
xnode:IXMLNode;
vnode:IXMLNode;
mainnode:IXMLNode;
begin
with TXMLDocument.Create(self) do
try
Active:=true;
...
mainNode:=AddChild('DECLAR');
...
xnode:=mainnode.AddChild('DECLARHEAD');
...
xnode.AddChild('HBOS').Text:=EDDirName.Text;
...
SaveToFile(outfilename);
Active:=false;
finally
free;
end;
...
В итоге нужная строка в полученном xml-файле имеет 16-битную кодировку... А мне нужна 8-битная. Как сделать?
Dimka Maslov (2013-02-11 13:17:00) [1]
> с чего бы "должен"? что прописано то и будет. если не указано
> вообще, то будет пытаться определять как utf8.
Именно это я и имел ввиду под словом "должен". Автокодировкоопределятора никакого не предусмотрено.
sniknik (2013-02-11 13:10:00) [2]> О. Спасибо. Помогло.
кстати "по идее" если читать также, чем нибудь стандартным ("стандартизированным"), а не блокнотом к примеру, то пофигу в какой кодировке файл. одно из достоинств xml (если конечно никто в парсинг своими "велосипедными" методами не лезет, тогда все с точностью до наоборот).
sniknik (2013-02-11 12:49:00) [3]> то он дожен определять кодировку сам и корректно её отображать.
с чего бы "должен"? что прописано то и будет. если не указано вообще, то будет пытаться определять как utf8.
Dimka Maslov (2013-02-11 12:45:00) [4]
> Очень Злой (11.02.13 12:33) [9]
А я почём знаю, какая именно разновидность TXMLDocument используется, их много. Но если парсер у принимающей стороны адекватный то он дожен определять кодировку сам и корректно её отображать. Тем более, что UTF-8 вроде как стандарт и кодировка по умолчанию.
Очень Злой (2013-02-11 12:40:00) [5]
> Медвежонок Пятачок © (11.02.13 12:32) [8]
>
> property : Encoding
О. Спасибо. Помогло.
Очень Злой (2013-02-11 12:33:00) [6]
> Dimka Maslov © (11.02.13 12:15) [7]
>
> Вот с этого и надо было начинать. Сохраняем файл, читаем
> его через TStringList и сохраняем в нужной кодировке, не
> забыв её перепрописать в заголовке xml. А вообще, чтобы
> работало везде и правильно, про Windows-1251 надо забыть,
> как в своё время забыли про DOS-866.
Т.е. средствами самого TXMLDocument нельзя сразу создавать в нужной кодировке?
А насчет Windows-1251 - это не я придумал.
Хотя можно попробовать подсунуть им и в UTF-8, не знаю, воспримет ли...
Может и не придется заморачиваться с Windows-1251...
Медвежонок Пятачок (2013-02-11 12:32:00) [7]property : Encoding
Dimka Maslov (2013-02-11 12:15:00) [8]Вот с этого и надо было начинать. Сохраняем файл, читаем его через TStringList и сохраняем в нужной кодировке, не забыв её перепрописать в заголовке xml. А вообще, чтобы работало везде и правильно, про Windows-1251 надо забыть, как в своё время забыли про DOS-866.
Очень Злой (2013-02-11 12:14:00) [9]
> Что это за вид? Я такой кодировки не знаю.
windows-1251
Очень Злой (2013-02-11 12:12:00) [10]Вобщем вместо UTF-8 мне нужна windows-1251
Dimka Maslov (2013-02-11 12:12:00) [11]Что это за вид? Я такой кодировки не знаю.
Очень Злой (2013-02-11 12:08:00) [12]
> Не бывает ни 16-битной, 8-битной кодировок. У них у всех
> есть вполне определённые названия и характеристики.
Ну вроде получается UTF-8, русские буквы кодируются двумя байтами...
А мне нужно чтобы строка например "Вася Пупкин" имела такой вид:
C2 E0 F1 FF 20 CF F3 EF EA E8 ED
Плохиш (2013-02-11 12:04:00) [13]
> Очень Злой (11.02.13 11:42)
Не царское это дело хелпы читать.
Dimka Maslov (2013-02-11 11:49:00) [14]Не бывает ни 16-битной, 8-битной кодировок. У них у всех есть вполне определённые названия и характеристики.