3 using System
.Collections
;
5 namespace ByteFX
.Data
.MySqlClient
8 /// Summary description for CharSetMap.
10 internal class CharSetMap
12 private static Hashtable mapping
;
17 /// <param name="MySqlCharSetName"></param>
18 /// <returns></returns>
19 public static Encoding
GetEncoding( string MySqlCharSetName
)
25 int cpid
= (int)mapping
[ MySqlCharSetName
];
26 return Encoding
.GetEncoding( cpid
);
28 catch (System
.NotSupportedException
)
30 return Encoding
.GetEncoding(0);
37 private static void InitializeMapping()
39 mapping
= new Hashtable();
41 // relatively sure about
42 mapping
.Add( "default", 0 );
43 mapping
.Add( "big5", 950 ); // Traditional Chinese
44 mapping
.Add( "latin1", 28591 ); // Latin alphabet #1
45 mapping
.Add( "utf8", 65001 );
46 mapping
.Add( "ucs2", 1200 );
47 mapping
.Add( "latin2", 28592 );
48 mapping
.Add( "latin4", 28594 );
49 mapping
.Add( "latin3", 28593 );
50 mapping
.Add( "latin5", 1254 );
51 mapping
.Add( "cp1251", 1251 ); // Russian
52 mapping
.Add( "win1251", 1251 );
53 mapping
.Add( "hebrew", 1255 ); // Hebrew
54 mapping
.Add( "greek", 1253 ); // Greek
55 mapping
.Add( "sjis", 932 ); // Shift-JIS
56 mapping
.Add( "gbk", 936 ); // Simplified Chinese
57 mapping
.Add( "cp866", 866 );
58 mapping
.Add( "euc_kr", 949 );
60 // maybe, maybe not...
61 mapping
.Add( "win1250", 1250 ); // Central Eurpoe
62 mapping
.Add( "win1251ukr", 1251 );
63 mapping
.Add( "latin1_de", 1252 ); // Latin1 German
64 mapping
.Add( "german1", 1252 ); // German
65 mapping
.Add( "danish", 1252 ); // Danish
66 mapping
.Add( "dos", 437 ); // Dos
67 mapping
.Add( "pclatin2", 852 );
68 mapping
.Add( "win1250ch", 1250 );
69 mapping
.Add( "cp1257", 1257 );
70 mapping
.Add( "usa7", 646 );
71 mapping
.Add( "czech", 912 );
72 mapping
.Add( "hungarian", 912 );
73 mapping
.Add( "croat", 912 );
75 /* ("gb2312", "EUC_CN");
77 ("latvian", "ISO8859_13");
78 ("latvian1", "ISO8859_13");
79 ("estonia", "ISO8859_13");
80 ("koi8_ru", "KOI8_R");
82 ("macroman", "MacRoman");
83 ("macce", "MacCentralEurope");