implement EncoderAlias; include "sys.m";include "hash.m"; include "converter.m"; lookup( targ : string ) : string{ # lookup the proper name of an alias table := mastertable; while( 1 ) { end := len table; if ( end <= 20 ) { # linear search for( x:=0; x < end; x++ ) { (alias,proper) := table[x]; if ( alias == targ ) return( proper ); } # search failed return(nil); } # do binary search mid := int end / 2; (alias,proper) := table[mid]; if ( alias == targ ) return( proper ); # search failed setup next portion if ( alias < targ ) table = table[mid+1:]; else table = table[:mid-1]; } return( nil );} ## alias table: each entry is an (alias,proper)# pair of strings. This table MUST be in# sorted order, else the search fails.# by placing in a initialized module-global# the resulting size and load/init time is greatly# reduced.#mastertable := array[] of { ("037", "Cp037"), ("1006", "Cp1006"), ("1025", "Cp1025"), ("1026", "Cp1026"), ("1089", "8859_6"), ("1097", "Cp1097"), ("1098", "Cp1098"), ("1112", "Cp1112"), ("1122", "Cp1122"), ("1123", "Cp1123"), ("1124", "Cp1124"), ("1381", "Cp1381"), # MDA ("1383", "Cp1383"), # MDA ("273", "Cp273"), ("277", "Cp277"), ("278", "Cp278"), ("280", "Cp280"), ("284", "Cp284"), ("285", "Cp285"), ("297", "Cp297"), ("33722", "Cp33722"), # MDA ("420", "Cp420"), ("424", "Cp424"), ("437", "Cp437"), ("500", "Cp500"), ("737", "Cp737"), ("775", "Cp775"), ("813", "8859_7"), ("819", "8859_1"), ("838", "Cp838"), # MDA ("850", "Cp850"), ("852", "Cp852"), ("855", "Cp855"), ("856", "Cp856"), ("857", "Cp857"), ("860", "Cp860"), ("861", "Cp861"), ("862", "Cp862"), ("863", "Cp863"), ("865", "Cp865"), ("866", "Cp866"), ("868", "Cp868"), ("869", "Cp869"), ("870", "Cp870"), ("871", "Cp871"), ("874", "Cp874"), ("875", "Cp875"), ("912", "8859_2"), ("913", "8859_3"), ("914", "8859_4"), ("915", "8859_5"), ("916", "8859_8"), ("918", "Cp918"), ("920", "8859_9"), ("921", "Cp921"), ("922", "Cp922"), ("930", "Cp930"), # MDA ("933", "Cp933"), # MDA ("935", "Cp935"), # MDA ("937", "Cp937"), # MDA ("939", "Cp939"), # MDA ("942", "Cp942"), # MDA ("948", "Cp948"), # MDA ("949", "Cp949"), # MDA ("950", "Cp950"), # MDA ("964", "Cp964"), # MDA ("970", "Cp970"), # MDA ("arabic", "8859_6"), ("asmo-708", "8859_6"), ("cp-gr", "Cp869"), ("cp-is", "Cp861"), ("cp037", "Cp037"), ("cp1006", "Cp1006"), ("cp1025", "Cp1025"), ("cp1026", "Cp1026"), ("cp1089", "8859_6"), ("cp1097", "Cp1097"), ("cp1098", "Cp1098"), ("cp1112", "Cp1112"), ("cp1122", "Cp1122"), ("cp1123", "Cp1123"), ("cp1124", "Cp1124"), ("cp1381", "Cp1381"), # MDA ("cp1383", "Cp1383"), # MDA ("cp273", "Cp273"), ("cp277", "Cp277"), ("cp278", "Cp278"), ("cp280", "Cp280"), ("cp284", "Cp284"), ("cp285", "Cp285"), ("cp297", "Cp297"), ("cp33722", "Cp33722"), # MDA ("cp420", "Cp420"), ("cp424", "Cp424"), ("cp437", "Cp437"), ("cp500", "Cp500"), ("cp737", "Cp737"), ("cp775", "Cp775"), ("cp813", "8859_7"), ("cp819", "8859_1"), ("cp838", "Cp838"), # MDA ("cp850", "Cp850"), ("cp852", "Cp852"), ("cp855", "Cp855"), ("cp856", "Cp856"), ("cp857", "Cp857"), ("cp860", "Cp860"), ("cp861", "Cp861"), ("cp862", "Cp862"), ("cp863", "Cp863"), ("cp864", "Cp864"), ("cp865", "Cp865"), ("cp866", "Cp866"), ("cp868", "Cp868"), ("cp869", "Cp869"), ("cp870", "Cp870"), ("cp871", "Cp871"), ("cp874", "Cp874"), ("cp875", "Cp875"), ("cp912", "8859_2"), ("cp913", "8859_3"), ("cp914", "8859_4"), ("cp915", "8859_5"), ("cp916", "8859_8"), ("cp918", "Cp918"), ("cp920", "8859_9"), ("cp921", "Cp921"), ("cp922", "Cp922"), ("cp930", "Cp930"), # MDA ("cp933", "Cp933"), # MDA ("cp935", "Cp935"), # MDA ("cp937", "Cp937"), # MDA ("cp939", "Cp939"), # MDA ("cp942", "Cp942"), # MDA ("cp948", "Cp948"), # MDA ("cp949", "Cp949"), # MDA ("cp950", "Cp950"), # MDA ("cp964", "Cp964"), # MDA ("cp970", "Cp970"), # MDA ("csISOLatin1", "8859_1"), ("cseucpkdfmtjapanese", "EUCJIS"), ("csibm857", "Cp857"), ("csibm860", "Cp860"), ("csibm861", "Cp861"), ("csibm863", "Cp863"), ("csibm864", "Cp864"), ("csibm865", "Cp865"), ("csibm865", "Cp866"), ("csibm869", "Cp869"), ("csiso2022jp", "JIS"), ("csisolatin2", "8859_2"), ("csisolatin3", "8859_3"), ("csisolatin4", "8859_4"), ("csisolatin5", "8859_9"), ("csisolatinarabic", "8859_6"), ("csisolatincyrillic", "8859_5"), ("csisolatingreek", "8859_7"), ("csisolatinhebrew", "8859_8"), ("csjisencoding", "JIS"), ("cskoi8r", "KOI8_R"), ("cspc850multilingual", "Cp850"), ("cspc862latinhebrew", "Cp862"), ("cspc8codepage437", "Cp437"), ("cspcp852", "Cp852"), ("cspcp855", "Cp855"), ("csshiftjis", "SJIS"), ("cswindows31j", "SJIS"), ("cyrillic", "8859_5"), ("ecma-114", "8859_6"), ("ecma-118", "8859_7"), ("elot_928", "8859_7"), ("extended_unix_code_packed_format_for_japanese", "EUCJIS"), ("greek", "8859_7"), ("greek8", "8859_7"), ("hebrew", "8859_8"), ("ibm-037", "Cp037"), ("ibm-1006", "Cp1006"), ("ibm-1025", "Cp1025"), ("ibm-1026", "Cp1026"), ("ibm-1089", "8859_6"), ("ibm-1097", "Cp1097"), ("ibm-1098", "Cp1098"), ("ibm-1112", "Cp1112"), ("ibm-1122", "Cp1122"), ("ibm-1123", "Cp1123"), ("ibm-1124", "Cp1124"), ("ibm-1381", "Cp1381"), # MDA ("ibm-1383", "Cp1383"), # MDA ("ibm-273", "Cp273"), ("ibm-277", "Cp277"), ("ibm-278", "Cp278"), ("ibm-280", "Cp280"), ("ibm-284", "Cp284"), ("ibm-285", "Cp285"), ("ibm-297", "Cp297"), ("ibm-33722", "Cp33722"), # MDA ("ibm-420", "Cp420"), ("ibm-424", "Cp424"), ("ibm-437", "Cp437"), ("ibm-500", "Cp500"), ("ibm-737", "Cp737"), ("ibm-775", "Cp775"), ("ibm-813", "8859_7"), ("ibm-819", "8859_1"), ("ibm-838", "Cp838"), # MDA ("ibm-850", "Cp850"), ("ibm-852", "Cp852"), ("ibm-855", "Cp855"), ("ibm-856", "Cp856"), ("ibm-857", "Cp857"), ("ibm-860", "Cp860"), ("ibm-861", "Cp861"), ("ibm-862", "Cp862"), ("ibm-863", "Cp863"), ("ibm-864", "Cp864"), ("ibm-865", "Cp865"), ("ibm-866", "Cp866"), ("ibm-868", "Cp868"), ("ibm-869", "Cp869"), ("ibm-870", "Cp870"), ("ibm-871", "Cp871"), ("ibm-874", "Cp874"), ("ibm-875", "Cp875"), ("ibm-912", "8859_2"), ("ibm-913", "8859_3"), ("ibm-914", "8859_4"), ("ibm-915", "8859_5"), ("ibm-916", "8859_8"), ("ibm-918", "Cp918"), ("ibm-920", "8859_9"), ("ibm-921", "Cp921"), ("ibm-922", "Cp922"), ("ibm-930", "Cp930"), # MDA ("ibm-933", "Cp933"), # MDA ("ibm-935", "Cp935"), # MDA ("ibm-937", "Cp937"), # MDA ("ibm-939", "Cp939"), # MDA ("ibm-942", "Cp942"), # MDA ("ibm-948", "Cp948"), # MDA ("ibm-949", "Cp949"), # MDA ("ibm-950", "Cp950"), # MDA ("ibm-964", "Cp964"), # MDA ("ibm-970", "Cp970"), # MDA ("ibm037", "Cp037"), ("ibm1006", "Cp1006"), ("ibm1025", "Cp1025"), ("ibm1026", "Cp1026"), ("ibm1089", "8859_6"), ("ibm1097", "Cp1097"), ("ibm1098", "Cp1098"), ("ibm1112", "Cp1112"), ("ibm1122", "Cp1122"), ("ibm1123", "Cp1123"), ("ibm1124", "Cp1124"), ("ibm1381", "Cp1381"), # MDA ("ibm1383", "Cp1383"), # MDA ("ibm273", "Cp273"), ("ibm277", "Cp277"), ("ibm278", "Cp278"), ("ibm280", "Cp280"), ("ibm284", "Cp284"), ("ibm285", "Cp285"), ("ibm297", "Cp297"), ("ibm33722", "Cp33722"), # MDA ("ibm420", "Cp420"), ("ibm424", "Cp424"), ("ibm437", "Cp437"), ("ibm500", "Cp500"), ("ibm737", "Cp737"), ("ibm775", "Cp775"), ("ibm813", "8859_7"), ("ibm819", "8859_1"), ("ibm838", "Cp838"), # MDA ("ibm850", "Cp850"), ("ibm852", "Cp852"), ("ibm855", "Cp855"), ("ibm856", "Cp856"), ("ibm857", "Cp857"), ("ibm860", "Cp860"), ("ibm861", "Cp861"), ("ibm862", "Cp862"), ("ibm863", "Cp863"), ("ibm864", "Cp864"), ("ibm865", "Cp865"), ("ibm866", "Cp866"), ("ibm868", "Cp868"), ("ibm869", "Cp869"), ("ibm870", "Cp870"), ("ibm871", "Cp871"), ("ibm874", "Cp874"), ("ibm875", "Cp875"), ("ibm912", "8859_2"), ("ibm913", "8859_3"), ("ibm914", "8859_4"), ("ibm915", "8859_5"), ("ibm916", "8859_8"), ("ibm918", "Cp918"), ("ibm920", "8859_9"), ("ibm921", "Cp921"), ("ibm922", "Cp922"), ("ibm930", "Cp930"), # MDA ("ibm933", "Cp933"), # MDA ("ibm935", "Cp935"), # MDA ("ibm937", "Cp937"), # MDA ("ibm939", "Cp939"), # MDA ("ibm942", "Cp942"), # MDA ("ibm948", "Cp948"), # MDA ("ibm949", "Cp949"), # MDA ("ibm950", "Cp950"), # MDA ("ibm964", "Cp964"), # MDA ("ibm970", "Cp970"), # MDA ("iso-2022-jp", "JIS"), ("iso-8859-1", "8859_1"), ("iso-8859-2", "8859_2"), ("iso-8859-3", "8859_3"), ("iso-8859-4", "8859_4"), ("iso-8859-5", "8859_5"), ("iso-8859-6", "8859_6"), ("iso-8859-7", "8859_7"), ("iso-8859-8", "8859_8"), ("iso-8859-9", "8859_9"), ("iso-ir-100", "8859_1"), ("iso-ir-101", "8859_2"), ("iso-ir-109", "8859_3"), ("iso-ir-110", "8859_4"), ("iso-ir-126", "8859_7"), ("iso-ir-127", "8859_6"), ("iso-ir-138", "8859_8"), ("iso-ir-144", "8859_5"), ("iso-ir-148", "8859_9"), ("iso_8859-1", "8859_1"), ("iso_8859-1:1978", "8859_1"), ("iso_8859-2", "8859_2"), ("iso_8859-2:1987", "8859_2"), ("iso_8859-3", "8859_3"), ("iso_8859-3:1988", "8859_3"), ("iso_8859-4", "8859_4"), ("iso_8859-4:1988", "8859_4"), ("iso_8859-5", "8859_5"), ("iso_8859-5:1988", "8859_5"), ("iso_8859-6", "8859_6"), ("iso_8859-6:1987", "8859_6"), ("iso_8859-7", "8859_7"), ("iso_8859-7:1987", "8859_7"), ("iso_8859-8", "8859_8"), ("iso_8859-8:1988", "8859_8"), ("iso_8859-9", "8859_9"), ("iso_8859-9:1989", "8859_9"), ("jis auto detect", "JISAutoDetect"), ("jis_encoding", "JIS"), ("koi8-r", "KOI8_R"), ("ks_c_5601-1987", "KSC5601"), ("ksc_5601", "KSC5601"), ("l1", "8859_1"), ("l2", "8859_2"), ("l3", "8859_3"), ("l4", "8859_4"), ("l5", "8859_9"), ("latin1", "8859_1"), ("latin2", "8859_2"), ("latin3", "8859_3"), ("latin4", "8859_4"), ("latin5", "8859_9"), ("ms_kanji", "SJIS"), ("shift_jis", "SJIS"), ("windows-1250", "Cp1250"), ("windows-1251", "Cp1251"), ("windows-1252", "Cp1252"), ("windows-1253", "Cp1253"), ("windows-1254", "Cp1254"), ("windows-1255", "Cp1255"), ("windows-1256", "Cp1256"), ("windows-1257", "Cp1257"), ("windows-1258", "Cp1258"), ("windows-31J", "SJIS"), ("windows-874", "MS874")};
implement EncoderAlias;
include "sys.m";
include "hash.m";
include "converter.m";
lookup( targ : string ) : string
{
# lookup the proper name of an alias
table := mastertable;
while( 1 )
{
end := len table;
if ( end <= 20 )
{
# linear search
for( x:=0; x < end; x++ )
{
(alias,proper) := table[x];
if ( alias == targ )
return( proper );
}
# search failed
return(nil);
}
# do binary search
mid := int end / 2;
(alias,proper) := table[mid];
if ( alias == targ )
return( proper );
# search failed setup next portion
if ( alias < targ )
table = table[mid+1:];
else
table = table[:mid-1];
}
return( nil );
}
#
# alias table: each entry is an (alias,proper)
# pair of strings. This table MUST be in
# sorted order, else the search fails.
# by placing in a initialized module-global
# the resulting size and load/init time is greatly
# reduced.
#
mastertable := array[] of
{
("037", "Cp037"),
("1006", "Cp1006"),
("1025", "Cp1025"),
("1026", "Cp1026"),
("1089", "8859_6"),
("1097", "Cp1097"),
("1098", "Cp1098"),
("1112", "Cp1112"),
("1122", "Cp1122"),
("1123", "Cp1123"),
("1124", "Cp1124"),
("1381", "Cp1381"), # MDA
("1383", "Cp1383"), # MDA
("273", "Cp273"),
("277", "Cp277"),
("278", "Cp278"),
("280", "Cp280"),
("284", "Cp284"),
("285", "Cp285"),
("297", "Cp297"),
("33722", "Cp33722"), # MDA
("420", "Cp420"),
("424", "Cp424"),
("437", "Cp437"),
("500", "Cp500"),
("737", "Cp737"),
("775", "Cp775"),
("813", "8859_7"),
("819", "8859_1"),
("838", "Cp838"), # MDA
("850", "Cp850"),
("852", "Cp852"),
("855", "Cp855"),
("856", "Cp856"),
("857", "Cp857"),
("860", "Cp860"),
("861", "Cp861"),
("862", "Cp862"),
("863", "Cp863"),
("865", "Cp865"),
("866", "Cp866"),
("868", "Cp868"),
("869", "Cp869"),
("870", "Cp870"),
("871", "Cp871"),
("874", "Cp874"),
("875", "Cp875"),
("912", "8859_2"),
("913", "8859_3"),
("914", "8859_4"),
("915", "8859_5"),
("916", "8859_8"),
("918", "Cp918"),
("920", "8859_9"),
("921", "Cp921"),
("922", "Cp922"),
("930", "Cp930"), # MDA
("933", "Cp933"), # MDA
("935", "Cp935"), # MDA
("937", "Cp937"), # MDA
("939", "Cp939"), # MDA
("942", "Cp942"), # MDA
("948", "Cp948"), # MDA
("949", "Cp949"), # MDA
("950", "Cp950"), # MDA
("964", "Cp964"), # MDA
("970", "Cp970"), # MDA
("arabic", "8859_6"),
("asmo-708", "8859_6"),
("cp-gr", "Cp869"),
("cp-is", "Cp861"),
("cp037", "Cp037"),
("cp1006", "Cp1006"),
("cp1025", "Cp1025"),
("cp1026", "Cp1026"),
("cp1089", "8859_6"),
("cp1097", "Cp1097"),
("cp1098", "Cp1098"),
("cp1112", "Cp1112"),
("cp1122", "Cp1122"),
("cp1123", "Cp1123"),
("cp1124", "Cp1124"),
("cp1381", "Cp1381"), # MDA
("cp1383", "Cp1383"), # MDA
("cp273", "Cp273"),
("cp277", "Cp277"),
("cp278", "Cp278"),
("cp280", "Cp280"),
("cp284", "Cp284"),
("cp285", "Cp285"),
("cp297", "Cp297"),
("cp33722", "Cp33722"), # MDA
("cp420", "Cp420"),
("cp424", "Cp424"),
("cp437", "Cp437"),
("cp500", "Cp500"),
("cp737", "Cp737"),
("cp775", "Cp775"),
("cp813", "8859_7"),
("cp819", "8859_1"),
("cp838", "Cp838"), # MDA
("cp850", "Cp850"),
("cp852", "Cp852"),
("cp855", "Cp855"),
("cp856", "Cp856"),
("cp857", "Cp857"),
("cp860", "Cp860"),
("cp861", "Cp861"),
("cp862", "Cp862"),
("cp863", "Cp863"),
("cp864", "Cp864"),
("cp865", "Cp865"),
("cp866", "Cp866"),
("cp868", "Cp868"),
("cp869", "Cp869"),
("cp870", "Cp870"),
("cp871", "Cp871"),
("cp874", "Cp874"),
("cp875", "Cp875"),
("cp912", "8859_2"),
("cp913", "8859_3"),
("cp914", "8859_4"),
("cp915", "8859_5"),
("cp916", "8859_8"),
("cp918", "Cp918"),
("cp920", "8859_9"),
("cp921", "Cp921"),
("cp922", "Cp922"),
("cp930", "Cp930"), # MDA
("cp933", "Cp933"), # MDA
("cp935", "Cp935"), # MDA
("cp937", "Cp937"), # MDA
("cp939", "Cp939"), # MDA
("cp942", "Cp942"), # MDA
("cp948", "Cp948"), # MDA
("cp949", "Cp949"), # MDA
("cp950", "Cp950"), # MDA
("cp964", "Cp964"), # MDA
("cp970", "Cp970"), # MDA
("csISOLatin1", "8859_1"),
("cseucpkdfmtjapanese", "EUCJIS"),
("csibm857", "Cp857"),
("csibm860", "Cp860"),
("csibm861", "Cp861"),
("csibm863", "Cp863"),
("csibm864", "Cp864"),
("csibm865", "Cp865"),
("csibm865", "Cp866"),
("csibm869", "Cp869"),
("csiso2022jp", "JIS"),
("csisolatin2", "8859_2"),
("csisolatin3", "8859_3"),
("csisolatin4", "8859_4"),
("csisolatin5", "8859_9"),
("csisolatinarabic", "8859_6"),
("csisolatincyrillic", "8859_5"),
("csisolatingreek", "8859_7"),
("csisolatinhebrew", "8859_8"),
("csjisencoding", "JIS"),
("cskoi8r", "KOI8_R"),
("cspc850multilingual", "Cp850"),
("cspc862latinhebrew", "Cp862"),
("cspc8codepage437", "Cp437"),
("cspcp852", "Cp852"),
("cspcp855", "Cp855"),
("csshiftjis", "SJIS"),
("cswindows31j", "SJIS"),
("cyrillic", "8859_5"),
("ecma-114", "8859_6"),
("ecma-118", "8859_7"),
("elot_928", "8859_7"),
("extended_unix_code_packed_format_for_japanese", "EUCJIS"),
("greek", "8859_7"),
("greek8", "8859_7"),
("hebrew", "8859_8"),
("ibm-037", "Cp037"),
("ibm-1006", "Cp1006"),
("ibm-1025", "Cp1025"),
("ibm-1026", "Cp1026"),
("ibm-1089", "8859_6"),
("ibm-1097", "Cp1097"),
("ibm-1098", "Cp1098"),
("ibm-1112", "Cp1112"),
("ibm-1122", "Cp1122"),
("ibm-1123", "Cp1123"),
("ibm-1124", "Cp1124"),
("ibm-1381", "Cp1381"), # MDA
("ibm-1383", "Cp1383"), # MDA
("ibm-273", "Cp273"),
("ibm-277", "Cp277"),
("ibm-278", "Cp278"),
("ibm-280", "Cp280"),
("ibm-284", "Cp284"),
("ibm-285", "Cp285"),
("ibm-297", "Cp297"),
("ibm-33722", "Cp33722"), # MDA
("ibm-420", "Cp420"),
("ibm-424", "Cp424"),
("ibm-437", "Cp437"),
("ibm-500", "Cp500"),
("ibm-737", "Cp737"),
("ibm-775", "Cp775"),
("ibm-813", "8859_7"),
("ibm-819", "8859_1"),
("ibm-838", "Cp838"), # MDA
("ibm-850", "Cp850"),
("ibm-852", "Cp852"),
("ibm-855", "Cp855"),
("ibm-856", "Cp856"),
("ibm-857", "Cp857"),
("ibm-860", "Cp860"),
("ibm-861", "Cp861"),
("ibm-862", "Cp862"),
("ibm-863", "Cp863"),
("ibm-864", "Cp864"),
("ibm-865", "Cp865"),
("ibm-866", "Cp866"),
("ibm-868", "Cp868"),
("ibm-869", "Cp869"),
("ibm-870", "Cp870"),
("ibm-871", "Cp871"),
("ibm-874", "Cp874"),
("ibm-875", "Cp875"),
("ibm-912", "8859_2"),
("ibm-913", "8859_3"),
("ibm-914", "8859_4"),
("ibm-915", "8859_5"),
("ibm-916", "8859_8"),
("ibm-918", "Cp918"),
("ibm-920", "8859_9"),
("ibm-921", "Cp921"),
("ibm-922", "Cp922"),
("ibm-930", "Cp930"), # MDA
("ibm-933", "Cp933"), # MDA
("ibm-935", "Cp935"), # MDA
("ibm-937", "Cp937"), # MDA
("ibm-939", "Cp939"), # MDA
("ibm-942", "Cp942"), # MDA
("ibm-948", "Cp948"), # MDA
("ibm-949", "Cp949"), # MDA
("ibm-950", "Cp950"), # MDA
("ibm-964", "Cp964"), # MDA
("ibm-970", "Cp970"), # MDA
("ibm037", "Cp037"),
("ibm1006", "Cp1006"),
("ibm1025", "Cp1025"),
("ibm1026", "Cp1026"),
("ibm1089", "8859_6"),
("ibm1097", "Cp1097"),
("ibm1098", "Cp1098"),
("ibm1112", "Cp1112"),
("ibm1122", "Cp1122"),
("ibm1123", "Cp1123"),
("ibm1124", "Cp1124"),
("ibm1381", "Cp1381"), # MDA
("ibm1383", "Cp1383"), # MDA
("ibm273", "Cp273"),
("ibm277", "Cp277"),
("ibm278", "Cp278"),
("ibm280", "Cp280"),
("ibm284", "Cp284"),
("ibm285", "Cp285"),
("ibm297", "Cp297"),
("ibm33722", "Cp33722"), # MDA
("ibm420", "Cp420"),
("ibm424", "Cp424"),
("ibm437", "Cp437"),
("ibm500", "Cp500"),
("ibm737", "Cp737"),
("ibm775", "Cp775"),
("ibm813", "8859_7"),
("ibm819", "8859_1"),
("ibm838", "Cp838"), # MDA
("ibm850", "Cp850"),
("ibm852", "Cp852"),
("ibm855", "Cp855"),
("ibm856", "Cp856"),
("ibm857", "Cp857"),
("ibm860", "Cp860"),
("ibm861", "Cp861"),
("ibm862", "Cp862"),
("ibm863", "Cp863"),
("ibm864", "Cp864"),
("ibm865", "Cp865"),
("ibm866", "Cp866"),
("ibm868", "Cp868"),
("ibm869", "Cp869"),
("ibm870", "Cp870"),
("ibm871", "Cp871"),
("ibm874", "Cp874"),
("ibm875", "Cp875"),
("ibm912", "8859_2"),
("ibm913", "8859_3"),
("ibm914", "8859_4"),
("ibm915", "8859_5"),
("ibm916", "8859_8"),
("ibm918", "Cp918"),
("ibm920", "8859_9"),
("ibm921", "Cp921"),
("ibm922", "Cp922"),
("ibm930", "Cp930"), # MDA
("ibm933", "Cp933"), # MDA
("ibm935", "Cp935"), # MDA
("ibm937", "Cp937"), # MDA
("ibm939", "Cp939"), # MDA
("ibm942", "Cp942"), # MDA
("ibm948", "Cp948"), # MDA
("ibm949", "Cp949"), # MDA
("ibm950", "Cp950"), # MDA
("ibm964", "Cp964"), # MDA
("ibm970", "Cp970"), # MDA
("iso-2022-jp", "JIS"),
("iso-8859-1", "8859_1"),
("iso-8859-2", "8859_2"),
("iso-8859-3", "8859_3"),
("iso-8859-4", "8859_4"),
("iso-8859-5", "8859_5"),
("iso-8859-6", "8859_6"),
("iso-8859-7", "8859_7"),
("iso-8859-8", "8859_8"),
("iso-8859-9", "8859_9"),
("iso-ir-100", "8859_1"),
("iso-ir-101", "8859_2"),
("iso-ir-109", "8859_3"),
("iso-ir-110", "8859_4"),
("iso-ir-126", "8859_7"),
("iso-ir-127", "8859_6"),
("iso-ir-138", "8859_8"),
("iso-ir-144", "8859_5"),
("iso-ir-148", "8859_9"),
("iso_8859-1", "8859_1"),
("iso_8859-1:1978", "8859_1"),
("iso_8859-2", "8859_2"),
("iso_8859-2:1987", "8859_2"),
("iso_8859-3", "8859_3"),
("iso_8859-3:1988", "8859_3"),
("iso_8859-4", "8859_4"),
("iso_8859-4:1988", "8859_4"),
("iso_8859-5", "8859_5"),
("iso_8859-5:1988", "8859_5"),
("iso_8859-6", "8859_6"),
("iso_8859-6:1987", "8859_6"),
("iso_8859-7", "8859_7"),
("iso_8859-7:1987", "8859_7"),
("iso_8859-8", "8859_8"),
("iso_8859-8:1988", "8859_8"),
("iso_8859-9", "8859_9"),
("iso_8859-9:1989", "8859_9"),
("jis auto detect", "JISAutoDetect"),
("jis_encoding", "JIS"),
("koi8-r", "KOI8_R"),
("ks_c_5601-1987", "KSC5601"),
("ksc_5601", "KSC5601"),
("l1", "8859_1"),
("l2", "8859_2"),
("l3", "8859_3"),
("l4", "8859_4"),
("l5", "8859_9"),
("latin1", "8859_1"),
("latin2", "8859_2"),
("latin3", "8859_3"),
("latin4", "8859_4"),
("latin5", "8859_9"),
("ms_kanji", "SJIS"),
("shift_jis", "SJIS"),
("windows-1250", "Cp1250"),
("windows-1251", "Cp1251"),
("windows-1252", "Cp1252"),
("windows-1253", "Cp1253"),
("windows-1254", "Cp1254"),
("windows-1255", "Cp1255"),
("windows-1256", "Cp1256"),
("windows-1257", "Cp1257"),
("windows-1258", "Cp1258"),
("windows-31J", "SJIS"),
("windows-874", "MS874")
};