What's your current locale? If it's not Chinese you may want to change it. Note that it significantly affects system behavior and you should understand the implications in such a change.
???? often indicates the data loss during encoding conversions consider this Cyrillic example:
set t = "Привет"
USER>zzdump t
0000: 041F 0440 0438 0432 0435 0442 Привет
USER>zzdump $zcvt(t, "I", "UTF8")
0000: 3F 3F 3F 3F 3F 3F ??????
USER>zzdump $zcvt(t, "O", "UTF8")
0000: D0 9F D1 80 D0 B8 D0 B2 D0 B5 D1 82 Ð.Ñ.ивеÑ.
Note the difference between question marks and the last output. Last output is just encoding translation, but the first conversion - into questions completely lost the information, so you need to look deeper.
You can try to modify TCP/IP IO table via ^NLS utility in %SYS namespace
do ^NLS
1) Display current locale
2) Select defaults
3) Change locale
4) Display loaded settings
5) Advanced
NLS option? 2
1) Internal tables
2) I/O tables
3) CSP files
4) Date, time and number formats
Category of defaults? 2
Items marked with (*) represent the locale's original default
I/O table Current default
--------------------- --------------------
1) Process RAW (*)
2) Cache Terminal UTF8 (*)
3) Other terminal UTF8 (*)
4) File UTF8 (*)
5) Magtape UTF8 (*)
6) TCP/IP RAW (*)
7) System call RAW (*)
8) Printer CP1251 (*)
I/O table: 6
1) RAW (*)
2) UTF8
3) UnicodeLittle
4) UnicodeBig
5) CP1250
6) CP1251
7) CP1252
8) CP1253
9) CP1255
10) CP866
11) CP874
12) EBCDIC
13) KOI8R
14) Latin2
15) Latin9
16) LatinC
17) LatinG
18) LatinH
19) LatinT
Selection for TCP/IP: 1 =>
Where can I download allmessages_zh-cn.xml? Or is there an example file? Thanks
the file comes with the standard Caché /Ensenble distribution kit and should be installed
At least in a UNICODE installation. I verified it for 2016.2 and later. But it should be here even earlier.
I should add that I have no idea if iths is the right one. It is just the only one for Chinese I know of.
If you miss it you should contact WRC.