Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EncodingNLS.cs
Go to the documentation of this file.
2
3namespace System.Text;
4
5internal abstract class EncodingNLS : Encoding
6{
7 private string _encodingName;
8
9 private string _webName;
10
11 public override string EncodingName
12 {
13 get
14 {
15 if (_encodingName == null)
16 {
18 if (_encodingName == null)
19 {
21 }
22 if (_encodingName.StartsWith("Globalization_cp_", StringComparison.OrdinalIgnoreCase))
23 {
25 if (_encodingName == null)
26 {
28 }
29 }
30 }
31 return _encodingName;
32 }
33 }
34
35 public override string WebName
36 {
37 get
38 {
39 if (_webName == null)
40 {
42 if (_webName == null)
43 {
45 }
46 }
47 return _webName;
48 }
49 }
50
51 public override string HeaderName => CodePage switch
52 {
53 932 => "iso-2022-jp",
54 50221 => "iso-2022-jp",
55 50225 => "euc-kr",
56 _ => WebName,
57 };
58
59 public override string BodyName => CodePage switch
60 {
61 932 => "iso-2022-jp",
62 1250 => "iso-8859-2",
63 1251 => "koi8-r",
64 1252 => "iso-8859-1",
65 1253 => "iso-8859-7",
66 1254 => "iso-8859-9",
67 50221 => "iso-2022-jp",
68 50225 => "iso-2022-kr",
69 _ => WebName,
70 };
71
72 protected EncodingNLS(int codePage)
73 : base(codePage)
74 {
75 }
76
77 protected EncodingNLS(int codePage, EncoderFallback enc, DecoderFallback dec)
78 : base(codePage, enc, dec)
79 {
80 }
81
82 public unsafe abstract int GetByteCount(char* chars, int count, System.Text.EncoderNLS encoder);
83
84 public unsafe abstract int GetBytes(char* chars, int charCount, byte* bytes, int byteCount, System.Text.EncoderNLS encoder);
85
86 public unsafe abstract int GetCharCount(byte* bytes, int count, System.Text.DecoderNLS decoder);
87
88 public unsafe abstract int GetChars(byte* bytes, int byteCount, char* chars, int charCount, System.Text.DecoderNLS decoder);
89
90 public unsafe override int GetByteCount(char[] chars, int index, int count)
91 {
92 if (chars == null)
93 {
95 }
96 if (index < 0 || count < 0)
97 {
99 }
100 if (chars.Length - index < count)
101 {
103 }
104 if (chars.Length == 0)
105 {
106 return 0;
107 }
108 fixed (char* ptr = &chars[0])
109 {
110 return GetByteCount(ptr + index, count, null);
111 }
112 }
113
114 public unsafe override int GetByteCount(string s)
115 {
116 if (s == null)
117 {
118 throw new ArgumentNullException("s");
119 }
120 fixed (char* chars = s)
121 {
122 return GetByteCount(chars, s.Length, null);
123 }
124 }
125
126 public unsafe override int GetByteCount(char* chars, int count)
127 {
128 if (chars == null)
129 {
131 }
132 if (count < 0)
133 {
135 }
136 return GetByteCount(chars, count, null);
137 }
138
139 public unsafe override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex)
140 {
141 if (s == null || bytes == null)
142 {
143 throw new ArgumentNullException((s == null) ? "s" : "bytes", System.SR.ArgumentNull_Array);
144 }
145 if (charIndex < 0 || charCount < 0)
146 {
147 throw new ArgumentOutOfRangeException((charIndex < 0) ? "charIndex" : "charCount", System.SR.ArgumentOutOfRange_NeedNonNegNum);
148 }
149 if (s.Length - charIndex < charCount)
150 {
152 }
153 if (byteIndex < 0 || byteIndex > bytes.Length)
154 {
156 }
157 int byteCount = bytes.Length - byteIndex;
158 if (bytes.Length == 0)
159 {
160 bytes = new byte[1];
161 }
162 fixed (char* ptr = s)
163 {
164 fixed (byte* ptr2 = &bytes[0])
165 {
166 return GetBytes(ptr + charIndex, charCount, ptr2 + byteIndex, byteCount, null);
167 }
168 }
169 }
170
171 public unsafe override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex)
172 {
173 if (chars == null || bytes == null)
174 {
175 throw new ArgumentNullException((chars == null) ? "chars" : "bytes", System.SR.ArgumentNull_Array);
176 }
177 if (charIndex < 0 || charCount < 0)
178 {
179 throw new ArgumentOutOfRangeException((charIndex < 0) ? "charIndex" : "charCount", System.SR.ArgumentOutOfRange_NeedNonNegNum);
180 }
181 if (chars.Length - charIndex < charCount)
182 {
184 }
185 if (byteIndex < 0 || byteIndex > bytes.Length)
186 {
188 }
189 if (chars.Length == 0)
190 {
191 return 0;
192 }
193 int byteCount = bytes.Length - byteIndex;
194 if (bytes.Length == 0)
195 {
196 bytes = new byte[1];
197 }
198 fixed (char* ptr = &chars[0])
199 {
200 fixed (byte* ptr2 = &bytes[0])
201 {
202 return GetBytes(ptr + charIndex, charCount, ptr2 + byteIndex, byteCount, null);
203 }
204 }
205 }
206
207 public unsafe override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount)
208 {
209 if (bytes == null || chars == null)
210 {
211 throw new ArgumentNullException((bytes == null) ? "bytes" : "chars", System.SR.ArgumentNull_Array);
212 }
213 if (charCount < 0 || byteCount < 0)
214 {
215 throw new ArgumentOutOfRangeException((charCount < 0) ? "charCount" : "byteCount", System.SR.ArgumentOutOfRange_NeedNonNegNum);
216 }
217 return GetBytes(chars, charCount, bytes, byteCount, null);
218 }
219
220 public unsafe override int GetCharCount(byte[] bytes, int index, int count)
221 {
222 if (bytes == null)
223 {
225 }
226 if (index < 0 || count < 0)
227 {
228 throw new ArgumentOutOfRangeException((index < 0) ? "index" : "count", System.SR.ArgumentOutOfRange_NeedNonNegNum);
229 }
230 if (bytes.Length - index < count)
231 {
233 }
234 if (bytes.Length == 0)
235 {
236 return 0;
237 }
238 fixed (byte* ptr = &bytes[0])
239 {
240 return GetCharCount(ptr + index, count, null);
241 }
242 }
243
244 public unsafe override int GetCharCount(byte* bytes, int count)
245 {
246 if (bytes == null)
247 {
249 }
250 if (count < 0)
251 {
253 }
254 return GetCharCount(bytes, count, null);
255 }
256
257 public unsafe override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex)
258 {
259 if (bytes == null || chars == null)
260 {
261 throw new ArgumentNullException((bytes == null) ? "bytes" : "chars", System.SR.ArgumentNull_Array);
262 }
263 if (byteIndex < 0 || byteCount < 0)
264 {
265 throw new ArgumentOutOfRangeException((byteIndex < 0) ? "byteIndex" : "byteCount", System.SR.ArgumentOutOfRange_NeedNonNegNum);
266 }
267 if (bytes.Length - byteIndex < byteCount)
268 {
270 }
271 if (charIndex < 0 || charIndex > chars.Length)
272 {
274 }
275 if (bytes.Length == 0)
276 {
277 return 0;
278 }
279 int charCount = chars.Length - charIndex;
280 if (chars.Length == 0)
281 {
282 chars = new char[1];
283 }
284 fixed (byte* ptr = &bytes[0])
285 {
286 fixed (char* ptr2 = &chars[0])
287 {
288 return GetChars(ptr + byteIndex, byteCount, ptr2 + charIndex, charCount, null);
289 }
290 }
291 }
292
293 public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int charCount)
294 {
295 if (bytes == null || chars == null)
296 {
297 throw new ArgumentNullException((bytes == null) ? "bytes" : "chars", System.SR.ArgumentNull_Array);
298 }
299 if (charCount < 0 || byteCount < 0)
300 {
301 throw new ArgumentOutOfRangeException((charCount < 0) ? "charCount" : "byteCount", System.SR.ArgumentOutOfRange_NeedNonNegNum);
302 }
303 return GetChars(bytes, byteCount, chars, charCount, null);
304 }
305
306 public unsafe override string GetString(byte[] bytes, int index, int count)
307 {
308 if (bytes == null)
309 {
311 }
312 if (index < 0 || count < 0)
313 {
314 throw new ArgumentOutOfRangeException((index < 0) ? "index" : "count", System.SR.ArgumentOutOfRange_NeedNonNegNum);
315 }
316 if (bytes.Length - index < count)
317 {
319 }
320 if (bytes.Length == 0)
321 {
322 return string.Empty;
323 }
324 fixed (byte* ptr = &bytes[0])
325 {
326 return GetString(ptr + index, count);
327 }
328 }
329
330 public override Decoder GetDecoder()
331 {
332 return new System.Text.DecoderNLS(this);
333 }
334
335 public override Encoder GetEncoder()
336 {
337 return new System.Text.EncoderNLS(this);
338 }
339
340 internal void ThrowBytesOverflow(System.Text.EncoderNLS encoder, bool nothingEncoded)
341 {
342 if ((encoder?.m_throwOnOverflow ?? true) || nothingEncoded)
343 {
344 if (encoder != null && encoder.InternalHasFallbackBuffer)
345 {
346 encoder.FallbackBuffer.Reset();
347 }
349 }
350 encoder.ClearMustFlush();
351 }
352
353 internal void ThrowCharsOverflow(System.Text.DecoderNLS decoder, bool nothingDecoded)
354 {
355 if ((decoder?.m_throwOnOverflow ?? true) || nothingDecoded)
356 {
357 if (decoder != null && decoder.InternalHasFallbackBuffer)
358 {
359 decoder.FallbackBuffer.Reset();
360 }
362 }
363 decoder.ClearMustFlush();
364 }
365
366 [DoesNotReturn]
367 internal void ThrowBytesOverflow()
368 {
369 throw new ArgumentException(System.SR.Format(System.SR.Argument_EncodingConversionOverflowBytes, EncodingName, base.EncoderFallback.GetType()), "bytes");
370 }
371
372 [DoesNotReturn]
373 internal void ThrowCharsOverflow()
374 {
375 throw new ArgumentException(System.SR.Format(System.SR.Argument_EncodingConversionOverflowChars, EncodingName, base.DecoderFallback.GetType()), "chars");
376 }
377
378 internal static string GetLocalizedEncodingNameResource(int codePage)
379 {
380 return codePage switch
381 {
523 _ => null,
524 };
525 }
526}
static string Globalization_cp_20106
Definition SR.cs:190
static string Globalization_cp_20280
Definition SR.cs:206
static string Globalization_cp_20105
Definition SR.cs:188
static string Globalization_cp_50220
Definition SR.cs:274
static string Globalization_cp_28605
Definition SR.cs:266
static string Globalization_cp_10005
Definition SR.cs:154
static string Globalization_cp_10000
Definition SR.cs:144
static string Globalization_cp_50939
Definition SR.cs:296
static string Globalization_cp_20880
Definition SR.cs:230
static string ArgumentOutOfRange_Index
Definition SR.cs:30
static string Globalization_cp_20261
Definition SR.cs:196
static string Globalization_cp_737
Definition SR.cs:56
static string Globalization_cp_20002
Definition SR.cs:180
static string Globalization_cp_20278
Definition SR.cs:204
static string Globalization_cp_38598
Definition SR.cs:270
static string Globalization_cp_57009
Definition SR.cs:322
static string Globalization_cp_1254
Definition SR.cs:132
static string Globalization_cp_870
Definition SR.cs:86
static string Globalization_cp_500
Definition SR.cs:50
static string Argument_EncodingConversionOverflowBytes
Definition SR.cs:84
static string Globalization_cp_864
Definition SR.cs:78
static string NotSupported_NoCodepageData
Definition SR.cs:1688
static string Globalization_cp_57004
Definition SR.cs:312
static string Globalization_cp_57005
Definition SR.cs:314
static string Globalization_cp_1047
Definition SR.cs:102
static string Globalization_cp_20924
Definition SR.cs:234
static string Globalization_cp_20005
Definition SR.cs:186
static string Globalization_cp_50935
Definition SR.cs:292
static string Globalization_cp_20866
Definition SR.cs:226
static string Globalization_cp_28597
Definition SR.cs:258
static string Globalization_cp_50229
Definition SR.cs:284
static string Globalization_cp_10082
Definition SR.cs:174
static string Globalization_cp_1142
Definition SR.cs:108
static string Globalization_cp_50221
Definition SR.cs:276
static string Globalization_cp_1256
Definition SR.cs:136
static string Globalization_cp_852
Definition SR.cs:62
static string Globalization_cp_1253
Definition SR.cs:130
static string Globalization_cp_20932
Definition SR.cs:236
static string Globalization_cp_1140
Definition SR.cs:104
static string ArgumentOutOfRange_IndexCount
Definition SR.cs:80
static string Globalization_cp_50222
Definition SR.cs:278
static string Globalization_cp_28599
Definition SR.cs:262
static string Globalization_cp_21027
Definition SR.cs:244
static string Globalization_cp_20004
Definition SR.cs:184
static string Globalization_cp_10079
Definition SR.cs:170
static string Globalization_cp_857
Definition SR.cs:66
static string Argument_EncodingConversionOverflowChars
Definition SR.cs:86
static string Globalization_cp_437
Definition SR.cs:48
static string Globalization_cp_50937
Definition SR.cs:294
static string Globalization_cp_20000
Definition SR.cs:176
static string Globalization_cp_28592
Definition SR.cs:248
static string Globalization_cp_20297
Definition SR.cs:214
static string Globalization_cp_51932
Definition SR.cs:298
static string Globalization_cp_20833
Definition SR.cs:222
static string Globalization_cp_950
Definition SR.cs:98
static string Globalization_cp_51936
Definition SR.cs:300
static string Globalization_cp_10007
Definition SR.cs:158
static string Globalization_cp_28603
Definition SR.cs:264
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string Globalization_cp_1143
Definition SR.cs:110
static string Globalization_cp_28595
Definition SR.cs:254
static string Globalization_cp_29001
Definition SR.cs:268
static string Globalization_cp_1252
Definition SR.cs:128
static string Globalization_cp_50000
Definition SR.cs:272
static string Globalization_cp_57008
Definition SR.cs:320
static string Globalization_cp_50933
Definition SR.cs:290
static string Globalization_cp_10010
Definition SR.cs:162
static string Globalization_cp_862
Definition SR.cs:74
static string Globalization_cp_10004
Definition SR.cs:152
static string Globalization_cp_20285
Definition SR.cs:210
static string Globalization_cp_20277
Definition SR.cs:202
static string ArgumentOutOfRange_IndexCountBuffer
Definition SR.cs:78
static string Globalization_cp_20108
Definition SR.cs:194
static string Globalization_cp_20284
Definition SR.cs:208
static string Globalization_cp_50225
Definition SR.cs:280
static string Globalization_cp_875
Definition SR.cs:90
static string ArgumentNull_Array
Definition SR.cs:24
static string Globalization_cp_10003
Definition SR.cs:150
static string Globalization_cp_855
Definition SR.cs:64
static string Globalization_cp_863
Definition SR.cs:76
static string Globalization_cp_869
Definition SR.cs:84
static string Globalization_cp_20871
Definition SR.cs:228
static string Globalization_cp_20423
Definition SR.cs:218
static string Globalization_cp_28594
Definition SR.cs:252
static string Globalization_cp_10081
Definition SR.cs:172
static string Globalization_cp_50931
Definition SR.cs:288
static string MissingEncodingNameResource
Definition SR.cs:44
static string Globalization_cp_860
Definition SR.cs:70
static string Globalization_cp_10029
Definition SR.cs:168
static string Globalization_cp_1257
Definition SR.cs:138
static string Globalization_cp_20269
Definition SR.cs:198
static string Globalization_cp_20273
Definition SR.cs:200
static string Globalization_cp_20107
Definition SR.cs:192
static string Globalization_cp_21025
Definition SR.cs:242
static string Globalization_cp_1255
Definition SR.cs:134
static string Globalization_cp_10001
Definition SR.cs:146
static string Globalization_cp_1146
Definition SR.cs:116
static string Globalization_cp_20290
Definition SR.cs:212
static string Globalization_cp_1148
Definition SR.cs:120
static string Globalization_cp_28593
Definition SR.cs:250
static string Globalization_cp_20001
Definition SR.cs:178
static string Globalization_cp_57002
Definition SR.cs:308
static string Globalization_cp_932
Definition SR.cs:92
static string Globalization_cp_1250
Definition SR.cs:124
static string Globalization_cp_37
Definition SR.cs:46
static string Globalization_cp_20424
Definition SR.cs:220
static string Globalization_cp_775
Definition SR.cs:58
static string Globalization_cp_720
Definition SR.cs:54
static string Globalization_cp_865
Definition SR.cs:80
static string Globalization_cp_50227
Definition SR.cs:282
static string Globalization_cp_54936
Definition SR.cs:306
static string Globalization_cp_850
Definition SR.cs:60
static string Globalization_cp_51949
Definition SR.cs:302
static string Globalization_cp_57003
Definition SR.cs:310
static string Globalization_cp_20003
Definition SR.cs:182
static string Globalization_cp_57011
Definition SR.cs:326
static string Globalization_cp_1141
Definition SR.cs:106
static string Globalization_cp_28596
Definition SR.cs:256
static string Globalization_cp_949
Definition SR.cs:96
static string Globalization_cp_1145
Definition SR.cs:114
static string Globalization_cp_10002
Definition SR.cs:148
static string Globalization_cp_1258
Definition SR.cs:140
static string Globalization_cp_1251
Definition SR.cs:126
static string Globalization_cp_52936
Definition SR.cs:304
static string Globalization_cp_50930
Definition SR.cs:286
static string Globalization_cp_10006
Definition SR.cs:156
static string Globalization_cp_874
Definition SR.cs:88
static string Globalization_cp_861
Definition SR.cs:72
static string Globalization_cp_866
Definition SR.cs:82
static string Globalization_cp_10008
Definition SR.cs:160
static string Globalization_cp_936
Definition SR.cs:94
static string ArgumentOutOfRange_NeedNonNegNum
Definition SR.cs:32
static string Globalization_cp_20420
Definition SR.cs:216
static string Globalization_cp_858
Definition SR.cs:68
static string Globalization_cp_1361
Definition SR.cs:142
static string Globalization_cp_20949
Definition SR.cs:240
static string Globalization_cp_57007
Definition SR.cs:318
static string Globalization_cp_1144
Definition SR.cs:112
static string Globalization_cp_10021
Definition SR.cs:166
static string Globalization_cp_21866
Definition SR.cs:246
static string Globalization_cp_20838
Definition SR.cs:224
static string Globalization_cp_20905
Definition SR.cs:232
static string Globalization_cp_1149
Definition SR.cs:122
static string Globalization_cp_20936
Definition SR.cs:238
static string Globalization_cp_1147
Definition SR.cs:118
static string Globalization_cp_57006
Definition SR.cs:316
static string Globalization_cp_57010
Definition SR.cs:324
static string Globalization_cp_10017
Definition SR.cs:164
static string Globalization_cp_28598
Definition SR.cs:260
static string Globalization_cp_708
Definition SR.cs:52
static string Globalization_cp_1026
Definition SR.cs:100
Definition SR.cs:7
unsafe override int GetBytes(char *chars, int charCount, byte *bytes, int byteCount)
unsafe int GetCharCount(byte *bytes, int count, System.Text.DecoderNLS decoder)
void ThrowBytesOverflow(System.Text.EncoderNLS encoder, bool nothingEncoded)
override Decoder GetDecoder()
unsafe override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex)
override Encoder GetEncoder()
unsafe override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex)
override string WebName
override string BodyName
unsafe override int GetByteCount(char[] chars, int index, int count)
void ThrowCharsOverflow(System.Text.DecoderNLS decoder, bool nothingDecoded)
unsafe override int GetCharCount(byte *bytes, int count)
override string HeaderName
EncodingNLS(int codePage)
unsafe override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex)
unsafe int GetBytes(char *chars, int charCount, byte *bytes, int byteCount, System.Text.EncoderNLS encoder)
unsafe override int GetCharCount(byte[] bytes, int index, int count)
unsafe override string GetString(byte[] bytes, int index, int count)
override string EncodingName
unsafe int GetChars(byte *bytes, int byteCount, char *chars, int charCount, System.Text.DecoderNLS decoder)
unsafe override int GetByteCount(char *chars, int count)
unsafe int GetByteCount(char *chars, int count, System.Text.EncoderNLS encoder)
unsafe override int GetChars(byte *bytes, int byteCount, char *chars, int charCount)
static string GetLocalizedEncodingNameResource(int codePage)
EncodingNLS(int codePage, EncoderFallback enc, DecoderFallback dec)
unsafe override int GetByteCount(string s)
static string GetWebNameFromCodePage(int codePage)
static string GetEnglishNameFromCodePage(int codePage)
virtual int CodePage
Definition Encoding.cs:515