XML ドキュメントがあり、その一部には次のものが含まれています。
<math display='block'><mtext> </mtext></math>
これが Qt (具体的には、この問題が見つかった Qt MathML ウィジェット) に読み込まれると、QDomDocument オブジェクトは Unicode の薄いスペース文字 (U+2009) を失います。この Python サンプル コードは、問題を示しています。
from PyQt4.QtXml import *
d = QDomDocument()
d.setContent("<math display='block'><mtext> </mtext></math>")
print repr(unicode(d.toString()))
このコードからの出力は次のとおりです。
u'<math display="block">\n <mtext/>\n</math>\n'
細いスペースの後にスペース以外の余分な文字を挿入すると、細いスペースが失われるのを防ぎます。
これは私の間違いですか、XML 機能ですか、それとも Qt にバグがありますか?