I have a msi db with Japanese strings in it
(good.msi). When I convert it to xml file (good.xml),
the resulted xml file is correct, with the Japanese
strings. When I convert the xml file back to msi
(bad.msi), though, all the Japanese chars are
corrupted in the resulted new msi file. This can be
verified by convering the new msi file to another xml
file (bad.xml). This time, the xml file has the
corrupted Japanese strings.
Here is what I did:
- good.msi (msi2xml)-> good.xml OK
- good.xml (xml2msi)-> bad.msi Corrupted
- bad.msi (msi2xml)-> bad.xml Corrupted
I did some debugging with your source code. It seems
like a problem with Microsoft XML Parser. The bug is
at line 497 of xml2msi.cpp file.
The Japanese chars in pTd->nodeTypedValue obtained by
GetnodeTypedValue() is already corrupted. I also
downloaded and installed the XML Parser 4.0 and modify
the xml2msi code to use that but that doesn't solve
the problem. I don't know what else I can do to
address this problem. Your suggestions?
The file is attached. My email is firstname.lastname@example.org.
Thanks in advance,