Кирилица и XML

9 отговора 488 прегледа
#1

Кирилица и XML

Генерирам си XML - файл, който описва елементи на база данни. Всичко е наред, с изключение на това, че като го чета с IE5, ми излизат киликанзери вместо кирилица. Encoding с десния бутон на мишката въобще не се активира. Какво да правя?

Отговор
в отговор на Учeнимa #2

Re: Кирилица и XML

С какво генерираш файла? DOM, SAX, текстов редактор, XML редактор? Кой? Как?

There are 10 types of people in this world: those who understand binary and those who don't.
Отговор
в отговор на Пepин #3

Генериране..

XML файла се създава от моя програма, писана на Delphi 5.

Отговор
в отговор на Учeниka #4

Re: Генериране..

С DOM, SAX? С запис в текстов файл? Ако не дадеш повече информация не става ясно в какво точно е проблема.

There are 10 types of people in this world: those who understand binary and those who don't.
Отговор
в отговор на Пepин #5

Re: Генериране..

Az da se probwam wse pak s generalno reshenie - kakuw e encoding na polucheniq fajl? ne samo atributa na <?xml ?> ami samiq fajl pri zapiswaneto kak go kodirash. Pri polojenie che go zapiswash direktno bez da se zanimawash s encodinga togawa fajla e ISO-8859-1 koeto kakto se seshtash nqma kirilica.

Ako towa e problema zapishi fajla kato UTF-8.

Отговор
в отговор на Pavel #6

XML-Processing instruction

Файлът, който генерирам, ми е ASCII. Чета го с NotePad, визуализирам го с Internet Explorer 5.
XML - декларацията ми е :
<?xml version="1.0" encoding="windows-1252" standalone="yes" ?>
и кирилицата се визуализира с "маймунски" символи.
Като сложа
encoding="UTF-8", IE5 ми дава на първата срещната буква кирилица
An Invalid character was found ...... и нанатъка не показва нищо.
Като сложа
encoding="UTF-16", ми дава:
Switch from current encoding to specified encoding not supported.

Така че първото: encoding="windows-1252" е най-успешно, понеже все пак IE5 го възприема.

Отговор
в отговор на Учeниka #7

Re: XML-Processing instruction

Ако с UTF-16 запазиш с UNICODE?

There are 10 types of people in this world: those who understand binary and those who don't.
Отговор
в отговор на Учeниka #8

Re: XML-Processing instruction

Ами пробва ли с :

encoding="windows-1251" ?? Защо използваш 1252 ??

Отговор
в отговор на Godis #9

благодаря, стана с ="windows-1251"

Използвах ="windows-1252" , защото явно съм го прочел някъде

Сега всичко е наред

Отговор
в отговор на Учeниka #10

Re: благодаря, стана с ="windows-1251"

a njakoi znae li , ako go pravja sashtoto samo che s xerces
i izpolzvam DOMWriter zashto ne stava? :)
eto primerno kak iskam da stane
...
DOMText* devNode = doc->createTextNode(X("Ала бала портокала"));
pRootElem->appendChild(devNode );

DOMWriter *theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter();

if (theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true))
theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);
static XMLCh* gOutputEncoding = 0;
gOutputEncoding = XMLString::transcode("Windows-1251" );
theSerializer->setEncoding(gOutputEncoding);
XMLFormatTarget *myFormTarget;
myFormTarget = new StdOutFormatTarget();
theSerializer->writeNode(myFormTarget, *doc);

i se vijda boza
ako smenja s UTF-8 - pak boza
s cp1251 - same shit
i t.n.

ta njakoi pisal li e xml docs s xerces i kirilica vatre?

Отговор