File: CharSetMap.cs

package info (click to toggle)
mono 2.6.7-5.1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 327,344 kB
  • ctags: 413,649
  • sloc: cs: 2,471,883; xml: 1,768,594; ansic: 350,665; sh: 13,644; makefile: 8,640; perl: 1,784; asm: 717; cpp: 209; python: 146; sql: 81; sed: 16
file content (88 lines) | stat: -rw-r--r-- 2,394 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Text;
using System.Collections;

namespace ByteFX.Data.MySqlClient
{
	/// <summary>
	/// Summary description for CharSetMap.
	/// </summary>
	internal class CharSetMap
	{
		private static Hashtable mapping;

		/// <summary>
		/// 
		/// </summary>
		/// <param name="MySqlCharSetName"></param>
		/// <returns></returns>
		public static Encoding GetEncoding( string MySqlCharSetName ) 
		{
			if (mapping == null )
				InitializeMapping();
			try 
			{
				int cpid = (int)mapping[ MySqlCharSetName ];
				return Encoding.GetEncoding( cpid );
			}
			catch (System.NotSupportedException) 
			{
				return Encoding.GetEncoding(0);
			}
		}

		/// <summary>
		/// 
		/// </summary>
		private static void InitializeMapping() 
		{
			mapping = new Hashtable();

			// relatively sure about
			mapping.Add( "default", 0 );
			mapping.Add( "big5", 950 );			// Traditional Chinese
			mapping.Add( "latin1", 28591 );		// Latin alphabet #1
			mapping.Add( "utf8", 65001 );
			mapping.Add( "ucs2", 1200 );
			mapping.Add( "latin2", 28592 );
			mapping.Add( "latin4", 28594 );
			mapping.Add( "latin3", 28593 );
			mapping.Add( "latin5", 1254 );
			mapping.Add( "cp1251", 1251 );		// Russian
			mapping.Add( "win1251", 1251 );
			mapping.Add( "hebrew", 1255 );		// Hebrew
			mapping.Add( "greek", 1253 );		// Greek
			mapping.Add( "sjis", 932 );			// Shift-JIS
			mapping.Add( "gbk", 936 );			// Simplified Chinese
			mapping.Add( "cp866", 866 );
			mapping.Add( "euc_kr", 949 );

			// maybe, maybe not...
			mapping.Add( "win1250", 1250 );		// Central Eurpoe
			mapping.Add( "win1251ukr", 1251 );
			mapping.Add( "latin1_de", 1252 );	// Latin1 German
			mapping.Add( "german1", 1252 );		// German
			mapping.Add( "danish", 1252 );		// Danish
			mapping.Add( "dos", 437 );			// Dos
			mapping.Add( "pclatin2", 852 );		
			mapping.Add( "win1250ch", 1250 );
			mapping.Add( "cp1257", 1257 );
			mapping.Add( "usa7", 646 );
			mapping.Add( "czech", 912 );
			mapping.Add( "hungarian", 912 );
			mapping.Add( "croat", 912 );

/*			("gb2312", "EUC_CN");
			("ujis", "EUC_JP");
			("latvian", "ISO8859_13");
			("latvian1", "ISO8859_13");
			("estonia", "ISO8859_13");
			("koi8_ru", "KOI8_R");
			("tis620", "TIS620");
			("macroman", "MacRoman");
			("macce", "MacCentralEurope");
*/

		}
	}
}