K,
Does your XML file begin with the following line?
<?xml version="1.0" encoding="UTF-8" ?>
If not, add this line and see what happens. If you do have this line (or
you add it) and still have problems, then you may be using characters that
Windows cannot support or your fonts cannot display (i.e. traditional
Chinese).
Windows supports Unicode up to version 2.1 only. The XML parser converts
your XML source to UTF-16 and parsed internally. When the XML parser sees
the line above it will convert your XML file from UTF-8 with no loss of
information. However, without this line (specifically without the encoding
clue) the system default ANSI code page will be used when converting to
UTF-16.
Even with this line, you may still have characters that your fonts can't
display, however no loss in the conversion to/from UTF-8 will occur.
Hope this helps (and I hope I know what I'm talking about :-)
-MerkX
"K" <k@taka.com> wrote in message
news:#D**************@TK2MSFTNGP10.phx.gbl...
I've an XML file in UTF-8.
It contains some chinese characters ( both simplified chinese and
traditional chinese).
In loading the XML file with MSXML parser, I used the below code to
retrieve the data in a node. The CString was then display in CListCtrl. For the
traditional chinese characters, they were shown correctly, but for
simplified characters, I encounted many "?", but some characters were
correct.
if (MSXML::NODE_ELEMENT == pChild->nodeType)
{
MSXML::IXMLDOMNamedNodeMapPtr pAttrs = pChild->attributes;
MSXML::IXMLDOMNodePtr pAttr;
pAttr = pAttrs->getNamedItem(L"id");
CString id = OLE2T(pAttr->text);
MSXML::IXMLDOMNodePtr pWording = pChild->firstChild;
CString wording = OLE2T(pWording->text);
//add the wording to language
pMessageLanguage->m_wordingList.insert(MessageWordingListPair(id,
wording) );
}