@@ -24,34 +24,288 @@ public static void WriteUInt32(uint value, byte[] buffer, int offset, int count)
24
24
25
25
public static int GetBytesPerCharacter ( CharacterSet characterSet )
26
26
{
27
- // not an exhaustive mapping, but should cover commonly-used character sets
28
27
switch ( characterSet )
29
28
{
30
- case CharacterSet . Utf16Binary :
31
- case CharacterSet . Utf16GeneralCaseInsensitive :
32
- case CharacterSet . Utf16UnicodeCaseInsensitive :
33
- case CharacterSet . Utf16leBinary :
29
+ case CharacterSet . Latin2CzechCaseSensitive :
30
+ case CharacterSet . Dec8SwedishCaseInsensitive :
31
+ case CharacterSet . Cp850GeneralCaseInsensitive :
32
+ case CharacterSet . Latin1German1CaseInsensitive :
33
+ case CharacterSet . Hp8EnglishCaseInsensitive :
34
+ case CharacterSet . Koi8rGeneralCaseInsensitive :
35
+ case CharacterSet . Latin1SwedishCaseInsensitive :
36
+ case CharacterSet . Latin2GeneralCaseInsensitive :
37
+ case CharacterSet . Swe7SwedishCaseInsensitive :
38
+ case CharacterSet . AsciiGeneralCaseInsensitive :
39
+ case CharacterSet . Cp1251BulgarianCaseInsensitive :
40
+ case CharacterSet . Latin1DanishCaseInsensitive :
41
+ case CharacterSet . HebrewGeneralCaseInsensitive :
42
+ case CharacterSet . Tis620ThaiCaseInsensitive :
43
+ case CharacterSet . Latin7EstonianCaseSensitive :
44
+ case CharacterSet . Latin2HungarianCaseInsensitive :
45
+ case CharacterSet . Koi8uGeneralCaseInsensitive :
46
+ case CharacterSet . Cp1251UkrainianCaseInsensitive :
47
+ case CharacterSet . GreekGeneralCaseInsensitive :
48
+ case CharacterSet . Cp1250GeneralCaseInsensitive :
49
+ case CharacterSet . Latin2CroatianCaseInsensitive :
50
+ case CharacterSet . Cp1257LithuanianCaseInsensitive :
51
+ case CharacterSet . Latin5TurkishCaseInsensitive :
52
+ case CharacterSet . Latin1German2CaseInsensitive :
53
+ case CharacterSet . Armscii8GeneralCaseInsensitive :
54
+ case CharacterSet . Cp1250CzechCaseSensitive :
55
+ case CharacterSet . Cp866GeneralCaseInsensitive :
56
+ case CharacterSet . Keybcs2GeneralCaseInsensitive :
57
+ case CharacterSet . MacceGeneralCaseInsensitive :
58
+ case CharacterSet . MacromanGeneralCaseInsensitive :
59
+ case CharacterSet . Cp852GeneralCaseInsensitive :
60
+ case CharacterSet . Latin7GeneralCaseInsensitive :
61
+ case CharacterSet . Latin7GeneralCaseSensitive :
62
+ case CharacterSet . MacceBinary :
63
+ case CharacterSet . Cp1250CroatianCaseInsensitive :
64
+ case CharacterSet . Latin1Binary :
65
+ case CharacterSet . Latin1GeneralCaseInsensitive :
66
+ case CharacterSet . Latin1GeneralCaseSensitive :
67
+ case CharacterSet . Cp1251Binary :
68
+ case CharacterSet . Cp1251GeneralCaseInsensitive :
69
+ case CharacterSet . Cp1251GeneralCaseSensitive :
70
+ case CharacterSet . MacromanBinary :
71
+ case CharacterSet . Cp1256GeneralCaseInsensitive :
72
+ case CharacterSet . Cp1257Binary :
73
+ case CharacterSet . Cp1257GeneralCaseInsensitive :
74
+ case CharacterSet . Binary :
75
+ case CharacterSet . Armscii8Binary :
76
+ case CharacterSet . AsciiBinary :
77
+ case CharacterSet . Cp1250Binary :
78
+ case CharacterSet . Cp1256Binary :
79
+ case CharacterSet . Cp866Binary :
80
+ case CharacterSet . Dec8Binary :
81
+ case CharacterSet . GreekBinary :
82
+ case CharacterSet . HebrewBinary :
83
+ case CharacterSet . Hp8Binary :
84
+ case CharacterSet . Keybcs2Binary :
85
+ case CharacterSet . Koi8rBinary :
86
+ case CharacterSet . Koi8uBinary :
87
+ case CharacterSet . Latin2Binary :
88
+ case CharacterSet . Latin5Binary :
89
+ case CharacterSet . Latin7Binary :
90
+ case CharacterSet . Cp850Binary :
91
+ case CharacterSet . Cp852Binary :
92
+ case CharacterSet . Swe7Binary :
93
+ case CharacterSet . Tis620Binary :
94
+ case CharacterSet . Geostd8GeneralCaseInsensitive :
95
+ case CharacterSet . Geostd8Binary :
96
+ case CharacterSet . Latin1SpanishCaseInsensitive :
97
+ case CharacterSet . Cp1250PolishCaseInsensitive :
98
+ return 1 ;
99
+
100
+ case CharacterSet . Big5ChineseCaseInsensitive :
101
+ case CharacterSet . SjisJapaneseCaseInsensitive :
102
+ case CharacterSet . EuckrKoreanCaseInsensitive :
103
+ case CharacterSet . Gb2312ChineseCaseInsensitive :
104
+ case CharacterSet . GbkChineseCaseInsensitive :
105
+ case CharacterSet . Ucs2GeneralCaseInsensitive :
106
+ case CharacterSet . Big5Binary :
107
+ case CharacterSet . EuckrBinary :
108
+ case CharacterSet . Gb2312Binary :
109
+ case CharacterSet . GbkBinary :
110
+ case CharacterSet . SjisBinary :
111
+ case CharacterSet . Ucs2Binary :
112
+ case CharacterSet . Cp932JapaneseCaseInsensitive :
113
+ case CharacterSet . Cp932Binary :
114
+ case CharacterSet . Ucs2UnicodeCaseInsensitive :
115
+ case CharacterSet . Ucs2IcelandicCaseInsensitive :
116
+ case CharacterSet . Ucs2LatvianCaseInsensitive :
117
+ case CharacterSet . Ucs2RomanianCaseInsensitive :
118
+ case CharacterSet . Ucs2SlovenianCaseInsensitive :
119
+ case CharacterSet . Ucs2PolishCaseInsensitive :
120
+ case CharacterSet . Ucs2EstonianCaseInsensitive :
121
+ case CharacterSet . Ucs2SpanishCaseInsensitive :
122
+ case CharacterSet . Ucs2SwedishCaseInsensitive :
123
+ case CharacterSet . Ucs2TurkishCaseInsensitive :
124
+ case CharacterSet . Ucs2CzechCaseInsensitive :
125
+ case CharacterSet . Ucs2DanishCaseInsensitive :
126
+ case CharacterSet . Ucs2LithuanianCaseInsensitive :
127
+ case CharacterSet . Ucs2SlovakCaseInsensitive :
128
+ case CharacterSet . Ucs2Spanish2CaseInsensitive :
129
+ case CharacterSet . Ucs2RomanCaseInsensitive :
130
+ case CharacterSet . Ucs2PersianCaseInsensitive :
131
+ case CharacterSet . Ucs2EsperantoCaseInsensitive :
132
+ case CharacterSet . Ucs2HungarianCaseInsensitive :
133
+ case CharacterSet . Ucs2SinhalaCaseInsensitive :
134
+ case CharacterSet . Ucs2German2CaseInsensitive :
135
+ case CharacterSet . Ucs2CroatianCaseInsensitive :
136
+ case CharacterSet . Ucs2Unicode520CaseInsensitive :
137
+ case CharacterSet . Ucs2VietnameseCaseInsensitive :
138
+ case CharacterSet . Ucs2GeneralMySql500CaseInsensitive :
34
139
return 2 ;
35
140
36
- case CharacterSet . Utf8Binary :
141
+ case CharacterSet . UjisJapaneseCaseInsensitive :
37
142
case CharacterSet . Utf8GeneralCaseInsensitive :
143
+ case CharacterSet . Utf8ToLowerCaseInsensitive :
144
+ case CharacterSet . Utf8Binary :
145
+ case CharacterSet . UjisBinary :
146
+ case CharacterSet . EucjpmsJapaneseCaseInsensitive :
147
+ case CharacterSet . EucjpmsBinary :
38
148
case CharacterSet . Utf8UnicodeCaseInsensitive :
149
+ case CharacterSet . Utf8IcelandicCaseInsensitive :
150
+ case CharacterSet . Utf8LatvianCaseInsensitive :
151
+ case CharacterSet . Utf8RomanianCaseInsensitive :
152
+ case CharacterSet . Utf8SlovenianCaseInsensitive :
153
+ case CharacterSet . Utf8PolishCaseInsensitive :
154
+ case CharacterSet . Utf8EstonianCaseInsensitive :
155
+ case CharacterSet . Utf8SpanishCaseInsensitive :
156
+ case CharacterSet . Utf8SwedishCaseInsensitive :
157
+ case CharacterSet . Utf8TurkishCaseInsensitive :
158
+ case CharacterSet . Utf8CzechCaseInsensitive :
159
+ case CharacterSet . Utf8DanishCaseInsensitive :
160
+ case CharacterSet . Utf8LithuanianCaseInsensitive :
161
+ case CharacterSet . Utf8SlovakCaseInsensitive :
162
+ case CharacterSet . Utf8Spanish2CaseInsensitive :
163
+ case CharacterSet . Utf8RomanCaseInsensitive :
164
+ case CharacterSet . Utf8PersianCaseInsensitive :
165
+ case CharacterSet . Utf8EsperantoCaseInsensitive :
166
+ case CharacterSet . Utf8HungarianCaseInsensitive :
167
+ case CharacterSet . Utf8SinhalaCaseInsensitive :
168
+ case CharacterSet . Utf8German2CaseInsensitive :
169
+ case CharacterSet . Utf8CroatianCaseInsensitive :
170
+ case CharacterSet . Utf8Unicode520CaseInsensitive :
171
+ case CharacterSet . Utf8VietnameseCaseInsensitive :
172
+ case CharacterSet . Utf8GeneralMySql500CaseInsensitive :
39
173
return 3 ;
40
174
41
- case CharacterSet . Utf8Mb4Binary :
42
175
case CharacterSet . Utf8Mb4GeneralCaseInsensitive :
176
+ case CharacterSet . Utf8Mb4Binary :
177
+ case CharacterSet . Utf16GeneralCaseInsensitive :
178
+ case CharacterSet . Utf16Binary :
179
+ case CharacterSet . Utf16leGeneralCaseInsensitive :
180
+ case CharacterSet . Utf32GeneralCaseInsensitive :
181
+ case CharacterSet . Utf32Binary :
182
+ case CharacterSet . Utf16leBinary :
183
+ case CharacterSet . Utf16UnicodeCaseInsensitive :
184
+ case CharacterSet . Utf16IcelandicCaseInsensitive :
185
+ case CharacterSet . Utf16LatvianCaseInsensitive :
186
+ case CharacterSet . Utf16RomanianCaseInsensitive :
187
+ case CharacterSet . Utf16SlovenianCaseInsensitive :
188
+ case CharacterSet . Utf16PolishCaseInsensitive :
189
+ case CharacterSet . Utf16EstonianCaseInsensitive :
190
+ case CharacterSet . Utf16SpanishCaseInsensitive :
191
+ case CharacterSet . Utf16SwedishCaseInsensitive :
192
+ case CharacterSet . Utf16TurkishCaseInsensitive :
193
+ case CharacterSet . Utf16CzechCaseInsensitive :
194
+ case CharacterSet . Utf16DanishCaseInsensitive :
195
+ case CharacterSet . Utf16LithuanianCaseInsensitive :
196
+ case CharacterSet . Utf16SlovakCaseInsensitive :
197
+ case CharacterSet . Utf16Spanish2CaseInsensitive :
198
+ case CharacterSet . Utf16RomanCaseInsensitive :
199
+ case CharacterSet . Utf16PersianCaseInsensitive :
200
+ case CharacterSet . Utf16EsperantoCaseInsensitive :
201
+ case CharacterSet . Utf16HungarianCaseInsensitive :
202
+ case CharacterSet . Utf16SinhalaCaseInsensitive :
203
+ case CharacterSet . Utf16German2CaseInsensitive :
204
+ case CharacterSet . Utf16CroatianCaseInsensitive :
205
+ case CharacterSet . Utf16Unicode520CaseInsensitive :
206
+ case CharacterSet . Utf16VietnameseCaseInsensitive :
207
+ case CharacterSet . Utf32UnicodeCaseInsensitive :
208
+ case CharacterSet . Utf32IcelandicCaseInsensitive :
209
+ case CharacterSet . Utf32LatvianCaseInsensitive :
210
+ case CharacterSet . Utf32RomanianCaseInsensitive :
211
+ case CharacterSet . Utf32SlovenianCaseInsensitive :
212
+ case CharacterSet . Utf32PolishCaseInsensitive :
213
+ case CharacterSet . Utf32EstonianCaseInsensitive :
214
+ case CharacterSet . Utf32SpanishCaseInsensitive :
215
+ case CharacterSet . Utf32SwedishCaseInsensitive :
216
+ case CharacterSet . Utf32TurkishCaseInsensitive :
217
+ case CharacterSet . Utf32CzechCaseInsensitive :
218
+ case CharacterSet . Utf32DanishCaseInsensitive :
219
+ case CharacterSet . Utf32LithuanianCaseInsensitive :
220
+ case CharacterSet . Utf32SlovakCaseInsensitive :
221
+ case CharacterSet . Utf32Spanish2CaseInsensitive :
222
+ case CharacterSet . Utf32RomanCaseInsensitive :
223
+ case CharacterSet . Utf32PersianCaseInsensitive :
224
+ case CharacterSet . Utf32EsperantoCaseInsensitive :
225
+ case CharacterSet . Utf32HungarianCaseInsensitive :
226
+ case CharacterSet . Utf32SinhalaCaseInsensitive :
227
+ case CharacterSet . Utf32German2CaseInsensitive :
228
+ case CharacterSet . Utf32CroatianCaseInsensitive :
229
+ case CharacterSet . Utf32Unicode520CaseInsensitive :
230
+ case CharacterSet . Utf32VietnameseCaseInsensitive :
43
231
case CharacterSet . Utf8Mb4UnicodeCaseInsensitive :
232
+ case CharacterSet . Utf8Mb4IcelandicCaseInsensitive :
233
+ case CharacterSet . Utf8Mb4LatvianCaseInsensitive :
234
+ case CharacterSet . Utf8Mb4RomanianCaseInsensitive :
235
+ case CharacterSet . Utf8Mb4SlovenianCaseInsensitive :
236
+ case CharacterSet . Utf8Mb4PolishCaseInsensitive :
237
+ case CharacterSet . Utf8Mb4EstonianCaseInsensitive :
238
+ case CharacterSet . Utf8Mb4SpanishCaseInsensitive :
239
+ case CharacterSet . Utf8Mb4SwedishCaseInsensitive :
240
+ case CharacterSet . Utf8Mb4TurkishCaseInsensitive :
241
+ case CharacterSet . Utf8Mb4CzechCaseInsensitive :
242
+ case CharacterSet . Utf8Mb4DanishCaseInsensitive :
243
+ case CharacterSet . Utf8Mb4LithuanianCaseInsensitive :
244
+ case CharacterSet . Utf8Mb4SlovakCaseInsensitive :
245
+ case CharacterSet . Utf8Mb4Spanish2CaseInsensitive :
246
+ case CharacterSet . Utf8Mb4RomanCaseInsensitive :
247
+ case CharacterSet . Utf8Mb4PersianCaseInsensitive :
248
+ case CharacterSet . Utf8Mb4EsperantoCaseInsensitive :
249
+ case CharacterSet . Utf8Mb4HungarianCaseInsensitive :
250
+ case CharacterSet . Utf8Mb4SinhalaCaseInsensitive :
251
+ case CharacterSet . Utf8Mb4German2CaseInsensitive :
252
+ case CharacterSet . Utf8Mb4CroatianCaseInsensitive :
44
253
case CharacterSet . Utf8Mb4Unicode520CaseInsensitive :
254
+ case CharacterSet . Utf8Mb4VietnameseCaseInsensitive :
255
+ case CharacterSet . Gb18030ChineseCaseInsensitive :
256
+ case CharacterSet . Gb18030Binary :
257
+ case CharacterSet . Gb18030Unicode520CaseInsensitive :
45
258
case CharacterSet . Utf8Mb4Uca900AccentInsensitiveCaseInsensitive :
259
+ case CharacterSet . Utf8Mb4GermanPhonebookUca900AccentInsensitiveCaseInsensitive :
260
+ case CharacterSet . Utf8Mb4IcelandicUca900AccentInsensitiveCaseInsensitive :
261
+ case CharacterSet . Utf8Mb4LatvianUca900AccentInsensitiveCaseInsensitive :
262
+ case CharacterSet . Utf8Mb4RomanianUca900AccentInsensitiveCaseInsensitive :
263
+ case CharacterSet . Utf8Mb4SlovenianUca900AccentInsensitiveCaseInsensitive :
264
+ case CharacterSet . Utf8Mb4PolishUca900AccentInsensitiveCaseInsensitive :
265
+ case CharacterSet . Utf8Mb4EstonianUca900AccentInsensitiveCaseInsensitive :
266
+ case CharacterSet . Utf8Mb4SpanishUca900AccentInsensitiveCaseInsensitive :
267
+ case CharacterSet . Utf8Mb4SwedishUca900AccentInsensitiveCaseInsensitive :
268
+ case CharacterSet . Utf8Mb4TurkishUca900AccentInsensitiveCaseInsensitive :
269
+ case CharacterSet . Utf8Mb4CaseSensitiveUca900AccentInsensitiveCaseInsensitive :
270
+ case CharacterSet . Utf8Mb4DanishUca900AccentInsensitiveCaseInsensitive :
271
+ case CharacterSet . Utf8Mb4LithuanianUca900AccentInsensitiveCaseInsensitive :
272
+ case CharacterSet . Utf8Mb4SlovakUca900AccentInsensitiveCaseInsensitive :
273
+ case CharacterSet . Utf8Mb4TraditionalSpanishUca900AccentInsensitiveCaseInsensitive :
274
+ case CharacterSet . Utf8Mb4LatinUca900AccentInsensitiveCaseInsensitive :
275
+ case CharacterSet . Utf8Mb4EsperantoUca900AccentInsensitiveCaseInsensitive :
276
+ case CharacterSet . Utf8Mb4HungarianUca900AccentInsensitiveCaseInsensitive :
277
+ case CharacterSet . Utf8Mb4CroatianUca900AccentInsensitiveCaseInsensitive :
278
+ case CharacterSet . Utf8Mb4VietnameseUca900AccentInsensitiveCaseInsensitive :
46
279
case CharacterSet . Utf8Mb4Uca900AccentSensitiveCaseSensitive :
47
- case CharacterSet . Utf32Binary :
48
- case CharacterSet . Utf32GeneralCaseInsensitive :
49
- case CharacterSet . Utf32UnicodeCaseInsensitive :
50
- case CharacterSet . Utf32Unicode520CaseInsensitive :
280
+ case CharacterSet . Utf8Mb4GermanPhonebookUca900AccentSensitiveCaseSensitive :
281
+ case CharacterSet . Utf8Mb4IcelandicUca900AccentSensitiveCaseSensitive :
282
+ case CharacterSet . Utf8Mb4LatvianUca900AccentSensitiveCaseSensitive :
283
+ case CharacterSet . Utf8Mb4RomanianUca900AccentSensitiveCaseSensitive :
284
+ case CharacterSet . Utf8Mb4SlovenianUca900AccentSensitiveCaseSensitive :
285
+ case CharacterSet . Utf8Mb4PolishUca900AccentSensitiveCaseSensitive :
286
+ case CharacterSet . Utf8Mb4EstonianUca900AccentSensitiveCaseSensitive :
287
+ case CharacterSet . Utf8Mb4SpanishUca900AccentSensitiveCaseSensitive :
288
+ case CharacterSet . Utf8Mb4SwedishUca900AccentSensitiveCaseSensitive :
289
+ case CharacterSet . Utf8Mb4TurkishUca900AccentSensitiveCaseSensitive :
290
+ case CharacterSet . Utf8Mb4CaseSensitiveUca900AccentSensitiveCaseSensitive :
291
+ case CharacterSet . Utf8Mb4DanishUca900AccentSensitiveCaseSensitive :
292
+ case CharacterSet . Utf8Mb4LithuanianUca900AccentSensitiveCaseSensitive :
293
+ case CharacterSet . Utf8Mb4SlovakUca900AccentSensitiveCaseSensitive :
294
+ case CharacterSet . Utf8Mb4TraditionalSpanishUca900AccentSensitiveCaseSensitive :
295
+ case CharacterSet . Utf8Mb4LatinUca900AccentSensitiveCaseSensitive :
296
+ case CharacterSet . Utf8Mb4EsperantoUca900AccentSensitiveCaseSensitive :
297
+ case CharacterSet . Utf8Mb4HungarianUca900AccentSensitiveCaseSensitive :
298
+ case CharacterSet . Utf8Mb4CroatianUca900AccentSensitiveCaseSensitive :
299
+ case CharacterSet . Utf8Mb4VietnameseUca900AccentSensitiveCaseSensitive :
300
+ case CharacterSet . Utf8Mb4JapaneseUca900AccentSensitiveCaseSensitive :
301
+ case CharacterSet . Utf8Mb4JapaneseUca900AccentSensitiveCaseSensitiveKanaSensitive :
302
+ case CharacterSet . Utf8Mb4Uca900AccentSensitiveCaseInsensitive :
303
+ case CharacterSet . Utf8Mb4RussianUca900AccentInsensitiveCaseInsensitive :
304
+ case CharacterSet . Utf8Mb4RussianUca900AccentSensitiveCaseSensitive :
51
305
return 4 ;
52
306
53
307
default :
54
- return 1 ;
308
+ throw new NotSupportedException ( "Maximum byte length of character set {0} is unknown." . FormatInvariant ( characterSet ) ) ;
55
309
}
56
310
}
57
311
0 commit comments