Support more DOS/Windows encodings

This commit is contained in:
Levin Li 2021-12-25 16:36:18 +08:00
parent e68b97d58b
commit ca6145efdd
4 changed files with 414 additions and 10 deletions

View file

@ -163,7 +163,20 @@ typedef NSUInteger NSStringCompareOptions;
* NSISOLatin7StringEncoding, NSISOLatin8StringEncoding,
* NSISOLatin9StringEncoding, NSGB2312StringEncoding, NSUTF7StringEncoding,
* NSGSM0338StringEncoding, NSBIG5StringEncoding,
* NSKoreanEUCStringEncoding</code>.</p>
* NSKoreanEUCStringEncoding, NSDOSLatinUSStringEncoding,
* NSDOSGreekStringEncoding, NSDOSBalticRimStringEncoding,
* NSDOSLatin1StringEncoding, NSDOSGreek1StringEncoding,
* NSDOSLatin2StringEncoding, NSDOSCyrillicStringEncoding,
* NSDOSTurkishStringEncoding, NSDOICortugueseStringEncoding,
* NSDOSIcelandicStringEncoding, NSDOSHebrewStringEncoding,
* NSDOSCanadianFrenchStringEncoding, NSDOSArabicStringEncoding,
* NSDOSNordicStringEncoding, NSDOSRussianStringEncoding,
* NSDOSGreek2StringEncoding, NSDOSThaiStringEncoding,
* NSDOSJapaneseStringEncoding, NSDOSChineseSimplifStringEncoding,
* NSDOSKoreanStringEncoding, NSDOSChineseTradStringEncoding,
* NSWindowsHebrewStringEncoding, NSWindowsArabicStringEncoding,
* NSWindowsBalticRimStringEncoding, NSWindowsVietnameseStringEncoding
* NSWindowsKoreanJohabStringEncoding</code>.</p>
*/
typedef enum _NSStringEncoding
{
@ -208,10 +221,42 @@ typedef enum _NSStringEncoding
NSISOLatin8StringEncoding = 62, // ISO-8859-14
NSISOLatin9StringEncoding = 63, // ISO-8859-15; Replaces ISOLatin1
NSGB2312StringEncoding = 56,
NSUTF7StringEncoding = 64, // RFC 2152
NSGSM0338StringEncoding, // GSM (mobile phone) default alphabet
NSBIG5StringEncoding, // Traditional chinese
NSKoreanEUCStringEncoding // Korean
NSUTF7StringEncoding = 64, // RFC 2152
NSGSM0338StringEncoding = 65, // GSM (mobile phone) default alphabet
NSBIG5StringEncoding = 66, // Traditional chinese
NSKoreanEUCStringEncoding = 67, // Korean
NSDOSLatinUSStringEncoding = 68, // code page 437
NSDOSGreekStringEncoding, // code page 737 (formerly code page 437G) */
NSDOSBalticRimStringEncoding, // code page 775
NSDOSLatin1StringEncoding, // code page 850, "Multilingual"
NSDOSGreek1StringEncoding, // code page 851
NSDOSLatin2StringEncoding, // code page 852, Slavic
NSDOSCyrillicStringEncoding, // code page 855, IBM Cyrillic
NSDOSTurkishStringEncoding, // code page 857, IBM Turkish
NSDOICortugueseStringEncoding, // code page 860
NSDOSIcelandicStringEncoding, // code page 861
NSDOSHebrewStringEncoding, // code page 862
NSDOSCanadianFrenchStringEncoding, // code page 863
NSDOSArabicStringEncoding, // code page 864
NSDOSNordicStringEncoding, // code page 865
NSDOSRussianStringEncoding, // code page 866
NSDOSGreek2StringEncoding, // code page 869, IBM Modern Greek
NSDOSThaiStringEncoding, // code page 874, also for Windows
NSDOSJapaneseStringEncoding, // code page 932, also for Windows
NSDOSChineseSimplifStringEncoding, // code page 936, also for Windows
NSDOSKoreanStringEncoding, // code page 949, also for Windows; Unified Hangul Code
NSDOSChineseTradStringEncoding, // code page 950, also for Windows
// NSWindowsLatin1StringEncoding, // code page 1252, NSWindowsCP1252StringEncoding
// NSWindowsLatin2StringEncoding, // code page 1250, Central Europe, NSWindowsCP1250StringEncoding
// NSWindowsCyrillicStringEncoding, // code page 1251, Slavic Cyrillic. NSWindowsCP1251StringEncoding
// NSWindowsGreekStringEncoding, // code page 1253, NSWindowsCP1253StringEncoding
// NSWindowsLatin5StringEncoding, // code page 1254, Turkish, NSWindowsCP1254StringEncoding
NSWindowsHebrewStringEncoding, // code page 1255
NSWindowsArabicStringEncoding, // code page 1256
NSWindowsBalticRimStringEncoding, // code page 1257
NSWindowsVietnameseStringEncoding, // code page 1258
NSWindowsKoreanJohabStringEncoding // code page 1361, for Windows NT
#if OS_API_VERSION(MAC_OS_X_VERSION_10_4,GS_API_LATEST)
,

View file

@ -67,12 +67,45 @@ typedef enum _NSGNUstepStringEncoding
*/
NSISOLatin7StringEncoding = 61, // ISO-8859-13
NSISOLatin8StringEncoding = 62, // ISO-8859-14
NSISOLatin9StringEncoding = 63, // ISO-8859-15; Replaces ISOLatin1
NSISOLatin9StringEncoding = 63, // ISO-8859-15; Replaces ISOLatin1
NSGB2312StringEncoding = 56,
NSUTF7StringEncoding = 64, // RFC 2152
NSGSM0338StringEncoding, // GSM (mobile phone) default alphabet
NSBIG5StringEncoding, // Traditional chinese
NSKoreanEUCStringEncoding,
NSUTF7StringEncoding = 64, // RFC 2152
NSGSM0338StringEncoding = 65, // GSM (mobile phone) default alphabet
NSBIG5StringEncoding = 66, // Traditional chinese
NSKoreanEUCStringEncoding = 67, // Korean
NSDOSLatinUSStringEncoding = 68, // code page 437
NSDOSGreekStringEncoding, // code page 737 (formerly code page 437G) */
NSDOSBalticRimStringEncoding, // code page 775
NSDOSLatin1StringEncoding, // code page 850, "Multilingual"
NSDOSGreek1StringEncoding, // code page 851
NSDOSLatin2StringEncoding, // code page 852, Slavic
NSDOSCyrillicStringEncoding, // code page 855, IBM Cyrillic
NSDOSTurkishStringEncoding, // code page 857, IBM Turkish
NSDOICortugueseStringEncoding, // code page 860
NSDOSIcelandicStringEncoding, // code page 861
NSDOSHebrewStringEncoding, // code page 862
NSDOSCanadianFrenchStringEncoding, // code page 863
NSDOSArabicStringEncoding, // code page 864
NSDOSNordicStringEncoding, // code page 865
NSDOSRussianStringEncoding, // code page 866
NSDOSGreek2StringEncoding, // code page 869, IBM Modern Greek
NSDOSThaiStringEncoding, // code page 874, also for Windows
NSDOSJapaneseStringEncoding, // code page 932, also for Windows
NSDOSChineseSimplifStringEncoding, // code page 936, also for Windows
NSDOSKoreanStringEncoding, // code page 949, also for Windows; Unified Hangul Code
NSDOSChineseTradStringEncoding, // code page 950, also for Windows
// NSWindowsLatin1StringEncoding, // code page 1252, NSWindowsCP1252StringEncoding
// NSWindowsLatin2StringEncoding, // code page 1250, Central Europe, NSWindowsCP1250StringEncoding
// NSWindowsCyrillicStringEncoding, // code page 1251, Slavic Cyrillic. NSWindowsCP1251StringEncoding
// NSWindowsGreekStringEncoding, // code page 1253, NSWindowsCP1253StringEncoding
// NSWindowsLatin5StringEncoding, // code page 1254, Turkish, NSWindowsCP1254StringEncoding
NSWindowsHebrewStringEncoding, // code page 1255
NSWindowsArabicStringEncoding, // code page 1256
NSWindowsBalticRimStringEncoding, // code page 1257
NSWindowsVietnameseStringEncoding, // code page 1258
NSWindowsKoreanJohabStringEncoding, // code page 1361, for Windows NT
#if OS_API_VERSION(MAC_OS_X_VERSION_10_4,GS_API_ANY)
NSUTF16BigEndianStringEncoding = 0x90000100,
NSUTF16LittleEndianStringEncoding = 0x94000100,

View file

@ -5349,6 +5349,96 @@ appendString(NSMutableData *m, NSUInteger offset, NSUInteger fold,
(void*)NSGB2312StringEncoding);
NSMapInsert(charsets, (void*)@"gb2312",
(void*)NSGB2312StringEncoding);
NSMapInsert(charsets, (void*)@"ibm437",
(void*)NSDOSLatinUSStringEncoding);
NSMapInsert(charsets, (void*)@"cp437",
(void*)NSDOSLatinUSStringEncoding);
NSMapInsert(charsets, (void*)@"ibm737",
(void*)NSDOSGreekStringEncoding);
NSMapInsert(charsets, (void*)@"cp737",
(void*)NSDOSGreekStringEncoding);
NSMapInsert(charsets, (void*)@"ibm775",
(void*)NSDOSBalticRimStringEncoding);
NSMapInsert(charsets, (void*)@"cp775",
(void*)NSDOSBalticRimStringEncoding);
NSMapInsert(charsets, (void*)@"ibm850",
(void*)NSDOSLatin1StringEncoding);
NSMapInsert(charsets, (void*)@"cp850",
(void*)NSDOSLatin1StringEncoding);
NSMapInsert(charsets, (void*)@"ibm851",
(void*)NSDOSGreek1StringEncoding);
NSMapInsert(charsets, (void*)@"cp851",
(void*)NSDOSGreek1StringEncoding);
NSMapInsert(charsets, (void*)@"ibm852",
(void*)NSDOSLatin2StringEncoding);
NSMapInsert(charsets, (void*)@"cp852",
(void*)NSDOSLatin2StringEncoding);
NSMapInsert(charsets, (void*)@"ibm855",
(void*)NSDOSCyrillicStringEncoding);
NSMapInsert(charsets, (void*)@"cp855",
(void*)NSDOSCyrillicStringEncoding);
NSMapInsert(charsets, (void*)@"ibm857",
(void*)NSDOSTurkishStringEncoding);
NSMapInsert(charsets, (void*)@"cp857",
(void*)NSDOSTurkishStringEncoding);
NSMapInsert(charsets, (void*)@"ibm861",
(void*)NSDOSIcelandicStringEncoding);
NSMapInsert(charsets, (void*)@"cp861",
(void*)NSDOSIcelandicStringEncoding);
NSMapInsert(charsets, (void*)@"ibm862",
(void*)NSDOSHebrewStringEncoding);
NSMapInsert(charsets, (void*)@"cp862",
(void*)NSDOSHebrewStringEncoding);
NSMapInsert(charsets, (void*)@"ibm863",
(void*)NSDOSCanadianFrenchStringEncoding);
NSMapInsert(charsets, (void*)@"cp863",
(void*)NSDOSCanadianFrenchStringEncoding);
NSMapInsert(charsets, (void*)@"ibm864",
(void*)NSDOSArabicStringEncoding);
NSMapInsert(charsets, (void*)@"cp864",
(void*)NSDOSArabicStringEncoding);
NSMapInsert(charsets, (void*)@"ibm865",
(void*)NSDOSNordicStringEncoding);
NSMapInsert(charsets, (void*)@"cp865",
(void*)NSDOSNordicStringEncoding);
NSMapInsert(charsets, (void*)@"ibm866",
(void*)NSDOSRussianStringEncoding);
NSMapInsert(charsets, (void*)@"cp866",
(void*)NSDOSRussianStringEncoding);
NSMapInsert(charsets, (void*)@"ibm869",
(void*)NSDOSGreek2StringEncoding);
NSMapInsert(charsets, (void*)@"cp869",
(void*)NSDOSGreek2StringEncoding);
NSMapInsert(charsets, (void*)@"ibm874",
(void*)NSDOSThaiStringEncoding);
NSMapInsert(charsets, (void*)@"cp874",
(void*)NSDOSThaiStringEncoding);
NSMapInsert(charsets, (void*)@"ibm932",
(void*)NSDOSJapaneseStringEncoding);
NSMapInsert(charsets, (void*)@"cp932",
(void*)NSDOSJapaneseStringEncoding);
NSMapInsert(charsets, (void*)@"ibm936",
(void*)NSDOSChineseSimplifStringEncoding);
NSMapInsert(charsets, (void*)@"cp936",
(void*)NSDOSChineseSimplifStringEncoding);
NSMapInsert(charsets, (void*)@"ibm949",
(void*)NSDOSKoreanStringEncoding);
NSMapInsert(charsets, (void*)@"cp949",
(void*)NSDOSKoreanStringEncoding);
NSMapInsert(charsets, (void*)@"ibm950",
(void*)NSDOSChineseTradStringEncoding);
NSMapInsert(charsets, (void*)@"cp950",
(void*)NSDOSChineseTradStringEncoding);
NSMapInsert(charsets, (void*)@"windows-1255",
(void*)NSWindowsHebrewStringEncoding);
NSMapInsert(charsets, (void*)@"windows-1256",
(void*)NSWindowsArabicStringEncoding);
NSMapInsert(charsets, (void*)@"windows-1257",
(void*)NSWindowsBalticRimStringEncoding);
NSMapInsert(charsets, (void*)@"windows-1258",
(void*)NSWindowsVietnameseStringEncoding);
NSMapInsert(charsets, (void*)@"windows-1361",
(void*)NSWindowsKoreanJohabStringEncoding);
/* Also map from GNUstep encoding names.
*/
@ -5388,6 +5478,59 @@ appendString(NSMutableData *m, NSUInteger offset, NSUInteger fold,
(void*)NSBIG5StringEncoding);
NSMapInsert(charsets, (void*)@"NSKoreanEUCStringEncoding",
(void*)NSKoreanEUCStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSLatinUSStringEncoding",
(void*)NSDOSLatinUSStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSGreekStringEncoding",
(void*)NSDOSGreekStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSBalticRimStringEncoding",
(void*)NSDOSBalticRimStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSLatin1StringEncoding",
(void*)NSDOSLatin1StringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSGreek1StringEncoding",
(void*)NSDOSGreek1StringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSLatin2StringEncoding",
(void*)NSDOSLatin2StringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSCyrillicStringEncoding",
(void*)NSDOSCyrillicStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSTurkishStringEncoding",
(void*)NSDOSTurkishStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOICortugueseStringEncoding",
(void*)NSDOICortugueseStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSIcelandicStringEncoding",
(void*)NSDOSIcelandicStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSHebrewStringEncoding",
(void*)NSDOSHebrewStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSCanadianFrenchStringEncoding",
(void*)NSDOSCanadianFrenchStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSArabicStringEncoding",
(void*)NSDOSArabicStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSNordicStringEncoding",
(void*)NSDOSNordicStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSRussianStringEncoding",
(void*)NSDOSRussianStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSGreek2StringEncoding",
(void*)NSDOSGreek2StringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSThaiStringEncoding",
(void*)NSDOSThaiStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSJapaneseStringEncoding",
(void*)NSDOSJapaneseStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSChineseSimplifStringEncoding",
(void*)NSDOSChineseSimplifStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSKoreanStringEncoding",
(void*)NSDOSKoreanStringEncoding);
NSMapInsert(charsets, (void*)@"NSDOSChineseTradStringEncoding",
(void*)NSDOSChineseTradStringEncoding);
NSMapInsert(charsets, (void*)@"NSWindowsHebrewStringEncoding",
(void*)NSWindowsHebrewStringEncoding);
NSMapInsert(charsets, (void*)@"NSWindowsArabicStringEncoding",
(void*)NSWindowsArabicStringEncoding);
NSMapInsert(charsets, (void*)@"NSWindowsBalticRimStringEncoding",
(void*)NSWindowsBalticRimStringEncoding);
NSMapInsert(charsets, (void*)@"NSWindowsVietnameseStringEncoding",
(void*)NSWindowsVietnameseStringEncoding);
NSMapInsert(charsets, (void*)@"NSWindowsKoreanJohabStringEncoding",
(void*)NSWindowsKoreanJohabStringEncoding);
#endif
}
if (encodings == 0)
@ -5466,6 +5609,56 @@ appendString(NSMutableData *m, NSUInteger offset, NSUInteger fold,
(void*)@"gb2312.1980");
NSMapInsert(encodings, (void*)NSKoreanEUCStringEncoding,
(void*)@"ksc5601.1987");
NSMapInsert(encodings, (void*)NSDOSLatinUSStringEncoding,
(void*)@"cp437");
NSMapInsert(encodings, (void*)NSDOSGreekStringEncoding,
(void*)@"cp737");
NSMapInsert(encodings, (void*)NSDOSBalticRimStringEncoding,
(void*)@"cp775");
NSMapInsert(encodings, (void*)NSDOSLatin1StringEncoding,
(void*)@"cp850");
NSMapInsert(encodings, (void*)NSDOSGreek1StringEncoding,
(void*)@"cp851");
NSMapInsert(encodings, (void*)NSDOSLatin2StringEncoding,
(void*)@"cp852");
NSMapInsert(encodings, (void*)NSDOSCyrillicStringEncoding,
(void*)@"cp855");
NSMapInsert(encodings, (void*)NSDOSTurkishStringEncoding,
(void*)@"cp857");
NSMapInsert(encodings, (void*)NSDOSIcelandicStringEncoding,
(void*)@"cp861");
NSMapInsert(encodings, (void*)NSDOSHebrewStringEncoding,
(void*)@"cp862");
NSMapInsert(encodings, (void*)NSDOSCanadianFrenchStringEncoding,
(void*)@"cp863");
NSMapInsert(encodings, (void*)NSDOSArabicStringEncoding,
(void*)@"cp864");
NSMapInsert(encodings, (void*)NSDOSNordicStringEncoding,
(void*)@"cp865");
NSMapInsert(encodings, (void*)NSDOSRussianStringEncoding,
(void*)@"cp866");
NSMapInsert(encodings, (void*)NSDOSGreek2StringEncoding,
(void*)@"cp869");
NSMapInsert(encodings, (void*)NSDOSThaiStringEncoding,
(void*)@"cp874");
NSMapInsert(encodings, (void*)NSDOSJapaneseStringEncoding,
(void*)@"cp932");
NSMapInsert(encodings, (void*)NSDOSChineseSimplifStringEncoding,
(void*)@"cp936");
NSMapInsert(encodings, (void*)NSDOSKoreanStringEncoding,
(void*)@"cp949");
NSMapInsert(encodings, (void*)NSDOSChineseTradStringEncoding,
(void*)@"cp950");
NSMapInsert(encodings, (void*)NSWindowsHebrewStringEncoding,
(void*)@"windows-1255");
NSMapInsert(encodings, (void*)NSWindowsArabicStringEncoding,
(void*)@"windows-1256");
NSMapInsert(encodings, (void*)NSWindowsBalticRimStringEncoding,
(void*)@"windows-1257");
NSMapInsert(encodings, (void*)NSWindowsVietnameseStringEncoding,
(void*)@"windows-1258");
NSMapInsert(encodings, (void*)NSWindowsKoreanJohabStringEncoding,
(void*)@"windows-1361");
#endif
}
if (headerClass == 0)

View file

@ -258,6 +258,61 @@ static struct _strenc_ str_encoding_table[] = {
{NSKoreanEUCStringEncoding,
"NSKoreanEUCStringEncoding","EUC-KR",0,0,0},
/* DOS and Windows encodings
*/
{NSDOSLatinUSStringEncoding,
"NSDOSLatinUSStringEncoding","CP437",0,0,0},
{NSDOSGreekStringEncoding,
"NSDOSGreekStringEncoding","CP737",0,0,0},
{NSDOSBalticRimStringEncoding,
"NSDOSBalticRimStringEncoding","CP775",0,0,0},
{NSDOSLatin1StringEncoding,
"NSDOSLatin1StringEncoding","CP850",0,0,0},
{NSDOSGreek1StringEncoding,
"NSDOSGreek1StringEncoding","CP851",0,0,0},
{NSDOSLatin2StringEncoding,
"NSDOSLatin2StringEncoding","CP852",0,0,0},
{NSDOSCyrillicStringEncoding,
"NSDOSCyrillicStringEncoding","CP855",0,0,0},
{NSDOSTurkishStringEncoding,
"NSDOSTurkishStringEncoding","CP857",0,0,0},
{NSDOICortugueseStringEncoding,
"NSDOICortugueseStringEncoding","CP860",0,0,0},
{NSDOSIcelandicStringEncoding,
"NSDOSIcelandicStringEncoding","CP861",0,0,0},
{NSDOSHebrewStringEncoding,
"NSDOSHebrewStringEncoding","CP862",0,0,0},
{NSDOSCanadianFrenchStringEncoding,
"NSDOSCanadianFrenchStringEncoding","CP863",0,0,0},
{NSDOSArabicStringEncoding,
"NSDOSArabicStringEncoding","CP864",0,0,0},
{NSDOSNordicStringEncoding,
"NSDOSNordicStringEncoding","CP865",0,0,0},
{NSDOSRussianStringEncoding,
"NSDOSRussianStringEncoding","CP866",0,0,0},
{NSDOSGreek2StringEncoding,
"NSDOSGreek2StringEncoding","CP869",0,0,0},
{NSDOSThaiStringEncoding,
"NSDOSThaiStringEncoding","CP874",0,0,0},
{NSDOSJapaneseStringEncoding,
"NSDOSJapaneseStringEncoding","CP932",0,0,0},
{NSDOSChineseSimplifStringEncoding,
"NSDOSChineseSimplifStringEncoding","CP936",0,0,0},
{NSDOSKoreanStringEncoding,
"NSDOSKoreanStringEncoding","CP949",0,0,0},
{NSDOSChineseTradStringEncoding,
"NSDOSChineseTradStringEncoding","CP950",0,0,0},
{NSWindowsHebrewStringEncoding,
"NSWindowsHebrewStringEncoding","CP1255",0,0,0},
{NSWindowsArabicStringEncoding,
"NSWindowsArabicStringEncoding","CP1256",0,0,0},
{NSWindowsBalticRimStringEncoding,
"NSWindowsBalticRimStringEncoding","CP1257",0,0,0},
{NSWindowsVietnameseStringEncoding,
"NSWindowsVietnameseStringEncoding","CP1258",0,0,0},
{NSWindowsKoreanJohabStringEncoding,
"NSWindowsKoreanJohabStringEncoding","CP1361",0,0,0},
/* Now Apple encodings which have high numeric values.
*/
{NSUTF16BigEndianStringEncoding,
@ -2873,6 +2928,84 @@ GSPrivateCStringEncoding(const char *encoding)
|| strcmp(encoding, "IBM-eucKR") == 0 /* AIX */
|| strcmp(encoding, "5601") == 0 /* Solaris */)
enc = NSKoreanEUCStringEncoding;
else if (strcmp(encoding, "CP437") == 0
|| strcmp(encoding, "IBM-437") == 0)
enc = NSDOSLatinUSStringEncoding;
else if (strcmp(encoding, "CP737") == 0
|| strcmp(encoding, "IBM-737") == 0)
enc = NSDOSGreekStringEncoding;
else if (strcmp(encoding, "CP775") == 0
|| strcmp(encoding, "IBM-775") == 0)
enc = NSDOSBalticRimStringEncoding;
else if (strcmp(encoding, "CP850") == 0
|| strcmp(encoding, "IBM-850") == 0)
enc = NSDOSLatin1StringEncoding;
else if (strcmp(encoding, "CP851") == 0
|| strcmp(encoding, "IBM-851") == 0)
enc = NSDOSGreek1StringEncoding;
else if (strcmp(encoding, "CP852") == 0
|| strcmp(encoding, "IBM-852") == 0)
enc = NSDOSLatin2StringEncoding;
else if (strcmp(encoding, "CP855") == 0
|| strcmp(encoding, "IBM-855") == 0)
enc = NSDOSCyrillicStringEncoding;
else if (strcmp(encoding, "CP857") == 0
|| strcmp(encoding, "IBM-857") == 0)
enc = NSDOSTurkishStringEncoding;
else if (strcmp(encoding, "CP860") == 0
|| strcmp(encoding, "IBM-860") == 0)
enc = NSDOICortugueseStringEncoding;
else if (strcmp(encoding, "CP861") == 0
|| strcmp(encoding, "IBM-861") == 0)
enc = NSDOSIcelandicStringEncoding;
else if (strcmp(encoding, "CP862") == 0
|| strcmp(encoding, "IBM-862") == 0)
enc = NSDOSHebrewStringEncoding;
else if (strcmp(encoding, "CP863") == 0
|| strcmp(encoding, "IBM-863") == 0)
enc = NSDOSCanadianFrenchStringEncoding;
else if (strcmp(encoding, "CP864") == 0
|| strcmp(encoding, "IBM-864") == 0)
enc = NSDOSArabicStringEncoding;
else if (strcmp(encoding, "CP865") == 0
|| strcmp(encoding, "IBM-865") == 0)
enc = NSDOSNordicStringEncoding;
else if (strcmp(encoding, "CP866") == 0
|| strcmp(encoding, "IBM-866") == 0)
enc = NSDOSRussianStringEncoding;
else if (strcmp(encoding, "CP869") == 0
|| strcmp(encoding, "IBM-869") == 0)
enc = NSDOSGreek2StringEncoding;
else if (strcmp(encoding, "CP874") == 0
|| strcmp(encoding, "IBM-874") == 0)
enc = NSDOSThaiStringEncoding;
else if (strcmp(encoding, "CP932") == 0
|| strcmp(encoding, "IBM-932") == 0)
enc = NSDOSJapaneseStringEncoding;
else if (strcmp(encoding, "CP936") == 0
|| strcmp(encoding, "IBM-936") == 0)
enc = NSDOSChineseSimplifStringEncoding;
else if (strcmp(encoding, "CP949") == 0
|| strcmp(encoding, "IBM-949") == 0)
enc = NSDOSKoreanStringEncoding;
else if (strcmp(encoding, "CP950") == 0
|| strcmp(encoding, "IBM-950") == 0)
enc = NSDOSChineseTradStringEncoding;
else if (strcmp(encoding, "CP1255") == 0
|| strcmp(encoding, "WINDOWS-1255") == 0)
enc = NSWindowsHebrewStringEncoding;
else if (strcmp(encoding, "CP1256") == 0
|| strcmp(encoding, "WINDOWS-1256") == 0)
enc = NSWindowsArabicStringEncoding;
else if (strcmp(encoding, "CP1257") == 0
|| strcmp(encoding, "WINDOWS-1257") == 0)
enc = NSWindowsBalticRimStringEncoding;
else if (strcmp(encoding, "CP1258") == 0
|| strcmp(encoding, "WINDOWS-1258") == 0)
enc = NSWindowsVietnameseStringEncoding;
else if (strcmp(encoding, "CP1361") == 0
|| strcmp(encoding, "WINDOWS-1361") == 0)
enc = NSWindowsKoreanJohabStringEncoding;
}
if (enc == GSUndefinedEncoding)