APAR status
Closed as program error.
Error description
Environment: Notes client 9.0.1 on Windows 7, please make sure the OS's system locale is English Or Traditional Chinese. Steps to reproduce: 1.Open sample database test.nsf with Notes client 2.Open the sample mail. Problem: You can see this mail body which contained many Chinese characters display as unreadable code. From the page source of this MIME message, we can see the character encoding is cp936, this email was forwared by traveler client on iOS(Traveler server version is 9.0.1.5) --Apple-Mail-F18F7CBF-F631-4886-AF27-E70661F72F42 Content-Type: text/plain; charset=cp936 Content-Transfer-Encoding: quoted-printable Although we have workaround on Notes client to choose the encoding to GB2312 or GB18030, the Chinese characters in the mail body will display well, but custmer think Notes should support charset cp936(GBK) on Windows that system locale is English or Traditional Chinese, we found that the Foxmail 7 client support it well.
Local fix
Open the email, from Notes top menu; View->Encoding->Other Choose mime Character sets as Simplified Chinese GB18030 OR GB2312. Then the Chinese Characters in the mail body display well.
Problem summary
LCU supports CP936, but the caller function does not use the correct CSID (Charset ID) to translate the string, it uses 0x52 (i.e. cckSTRCharSetIBMCP1252 or cckSTRCharSetANSI), however, it should be 0x1b (i.e. cckSTRCharSetIBMCP936 or cckSTRCharSetGB). The reason is: Before the Notes client calls into the HTML/SGML parser, it calls GetCharSetIdData() with the charset name, CP936, but no mapping exists and there was no entry in the default mapping table, so Notes uses its default charset, i.e. 0x52 Solution is adding the cp936 - cckSTRCharSetIBMCP936 mapping info into DefaultCharSetNameMap[] array, which is defined in \notes\misc\charset2.cpp.
Problem conclusion
LCU supports CP936, but the caller function does not use the correct CSID (Charset ID) to translate the string, it uses 0x52 (i.e. cckSTRCharSetIBMCP1252 or cckSTRCharSetANSI), however, it should be 0x1b (i.e. cckSTRCharSetIBMCP936 or cckSTRCharSetGB). The reason is: Before the Notes client calls into the HTML/SGML parser, it calls GetCharSetIdData() with the charset name, CP936, but no mapping exists and there was no entry in the default mapping table, so Notes uses its default charset, i.e. 0x52 Solution is adding the cp936 - cckSTRCharSetIBMCP936 mapping info into DefaultCharSetNameMap[] array, which is defined in \notes\misc\charset2.cpp.
Temporary fix
Comments
This APAR is associated with SPR# WBJT9YVM48. LCU supports CP936, but the caller function does not use the correct CSID (Charset ID) to translate the string, it uses 0x52 (i.e. cckSTRCharSetIBMCP1252 or cckSTRCharSetANSI), however, it should be 0x1b (i.e. cckSTRCharSetIBMCP936 or cckSTRCharSetGB). The reason is: Before the Notes client calls into the HTML/SGML parser, it calls GetCharSetIdData() with the charset name, CP936, but no mapping exists and there was no entry in the default mapping table, so Notes uses its default charset, i.e. 0x52 Solution is adding the cp936 - cckSTRCharSetIBMCP936 mapping info into DefaultCharSetNameMap[] array, which is defined in \notes\misc\charset2.cpp.
APAR Information
APAR number
LO85846
Reported component name
NOTES CLIENT
Reported component ID
5724E6255
Reported release
901
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-07-29
Closed date
2015-12-16
Last modified date
2015-12-16
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
NOTES CLIENT
Fixed component ID
5724E6255
Applicable component levels
R901 PSN
UP
[{"Business Unit":{"code":"BU055","label":"Cognitive Applications"},"Product":{"code":"SSKTWP","label":"Lotus Notes"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
16 December 2015