LINUX.ORG.RU

Специальный знак кавычки двойной

 , ,


0

1

Есть типа код который в xml пишет, я использую такое

    QString str="Обычный текст \"Текст в кавычках\"";
    ...
    QString xml = "Проверка кодировки";
    QXmlStreamWriter stream(&xml);
    stream.setAutoFormatting(true);
    stream.writeStartDocument(); 
    stream.writeStartElement("Begin");
...
    stream.writeTextElement("Tag", str);
...
    stream.writeEndElement();//Begin
    stream.writeEndDocument();
    QString s_out_xml = "any.xml";
    QFile *f_xml = new QFile(s_out_xml);
    f_xml->open(QIODevice::WriteOnly);
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    xml = xml.replace("<?xml version=\"1.0\"?>", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    xml = xml.replace("Проверка кодировки", "");
    QByteArray encodedString = codec->fromUnicode(xml);
    f_xml->write(encodedString);
    f_xml->close();
То есть текст русские буквы выводит правильно, а двойные кавычки пишет так в xml документе
<Tag>Обычный текст &quot;Текст в кавычках&quot;</Tag>
Как сделать чтобы нормально было?



Последнее исправление: bad_master (всего исправлений: 2)

Надеюсь, это что-то для себя или для проприетарной конторы, догадавшейся нанять такого крутого спеца.

Не хотелось бы наткнуться ни на такой xml ни на софт, в котором баги генерации оного добавлены намеренно, где-нибудь в опенсорсе.

CrX ★★★
()