[Qt-interest] Have QXmlStreameWriter write the encoding information
Lingfa Yang
lingfa at brandeis.edu
Wed Jun 3 05:01:37 CEST 2009
Marc Balmer wrote:
> Am 29.05.2009 um 16:13 schrieb Marc Balmer:
>
>
>> Am 29.05.2009 um 15:40 schrieb Andreas Pakulat:
>>
>>
>>> On 29.05.09 14:19:57, Marc Balmer wrote:
>>>
>>>> Am 29.05.2009 um 14:16 schrieb Marc Balmer:
>>>>
>>>>
>>>>> Hi
>>>>>
>>>>> When I create a XML data stream using QXmlStreamWriter, my stream
>>>>> starts with
>>>>>
>>>>> <?xml version="1.0"?>
>>>>>
>>>>> How can I add the encoding information, so that I get
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>
>>>>>
>>>> I forgot to add my code, so here is the snippet:
>>>>
>>>> QXmlStreamWriter xml(&xmlData);
>>>> xml.setAutoFormatting(true);
>>>> xml.setCodec("UTF-8");
>>>> xml.writeStartDocument();
>>>>
>>>> xml.writeStartDocument() does not output the encoding information.
>>>>
>>> Did you try with a different encoding? The reason it doesn't write
>>> the
>>> encoding out could be that XML standard demands utf-8 to be used
>>> during
>>> parsing if no encoding attribute is set. Hence the xml writer just
>>> avoids
>>> "stating the obvious".
>>>
>> that is not true. If I set the codec to ISO-8859-1 and output Latin1
>> data, it still
>> does not write the encoding.
>>
>
> Soe does anyone on this list have an idea how I can get the encoding
> information to be written? Or is it time to file a bug report?
>
> - Marc Balmer
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
What you want is a processing instruction line, so you should call
writeProcessingInstruction(), i.e.
xml.writeProcessingInstruction("xml", "version=\"1.0\"
encoding=\"UTF-8\"");
That's it.
Lingfa
More information about the Qt-interest-old
mailing list