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");