Chinese EUDC characters can't be displayed on data mapping XML file

Some Chinese characters created by EUDC editor can’t be shown on XML data file. Inputting data from AS400 database. Some of the words were created via Eudc editor and archived by Big 5 /Unicode. What happen now was those Eudc characters couldn’t be mapped to XML data File. the output shows ??? instead of correct chinese eudc character. Please advise

http://museum02.digitalarchives.tw/dmp/2000/pingpu/pinpunews/meetingrecords/workshop/word.htm

The short answer is unless the EUDC-based characters can be mapped to a standard Unicode value, Connect will not be able to use them.

Long answer: EUDC means end-user-defined characters. By definition, end-user-defined means it can be pretty much anything - including characters that can’t be understood unless a human sees the graphical representation of that character using a specific EUDC font.

Looking at the step-by-step you provided, you are doing exactly that. You create a new font and override the glyph for the character code U+FA40 with your special glyph and rely on the fact that your special font will be used to render that specific character. Using any other font will yield an incorrect result, as demonstrated by your smiley face glyph.

I would go one step further and say that you are doing it wrong. Unicode defines certain ranges of character codes for user-defined characters, such as U+E000 to U+F8FF. Overriding a standard character code such as U+FA40 is a bad idea because anyone reading or processing your data will think that U+FA40 means ? when in fact you mean image. Only a human reading the text with the proper fonts will read it the way you intended.

Now, if you don’t care about the actual meaning of the text and just want to create a new document using OL Connect, you could force the AS/400 to encode the EUDC characters as something else, such as U+FA40, in the XML, datamap the hacked text and apply the EUDC font to that text on the output side. This will render the character as image and yield the expected output. But anyone reading or processing the data in the middle will see ?.