From 2f6f1ca69d59e2692f85d56941e7d996195cd6e8 Mon Sep 17 00:00:00 2001 From: "Hoa V. DINH" Date: Wed, 29 Oct 2014 00:04:29 -0700 Subject: Improved charset handling --- src/core/basetypes/MCString.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/core/basetypes/MCString.cc b/src/core/basetypes/MCString.cc index e4225347..e5639ab0 100644 --- a/src/core/basetypes/MCString.cc +++ b/src/core/basetypes/MCString.cc @@ -1275,6 +1275,15 @@ void String::appendBytes(const char * bytes, unsigned int length, const char * c else { CFStringRef encodingName = CFStringCreateWithCString(NULL, charset, kCFStringEncodingUTF8); encoding = CFStringConvertIANACharSetNameToEncoding(encodingName); + if (encoding == kCFStringEncodingBig5) { + encoding = kCFStringEncodingBig5_HKSCS_1999; + } + if (encoding == kCFStringEncodingGBK_95) { + encoding = kCFStringEncodingGB_18030_2000; + } + if (encoding == kCFStringEncodingGB_2312_80) { + encoding = kCFStringEncodingGB_18030_2000; + } CFRelease(encodingName); } CFStringRef cfStr = CFStringCreateWithBytes(NULL, (const UInt8 *) bytes, (CFIndex) length, encoding, false); -- cgit v1.2.3