Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CodePagesEncodingProvider.cs
Go to the documentation of this file.
3
4namespace System.Text;
5
7{
8 private static readonly EncodingProvider s_singleton = new CodePagesEncodingProvider();
9
11
13
15
16 private static int SystemDefaultCodePage
17 {
18 get
19 {
20 if (!global::Interop.Kernel32.TryGetACPCodePage(out var codePage))
21 {
22 return 0;
23 }
24 return codePage;
25 }
26 }
27
29 {
30 }
31
32 public override Encoding? GetEncoding(int codepage)
33 {
35 {
36 return null;
37 }
38 if (codepage == 0)
39 {
41 if (systemDefaultCodePage == 0)
42 {
43 return null;
44 }
46 }
47 Encoding value = null;
49 try
50 {
52 {
53 return value;
54 }
56 {
57 case 1:
59 break;
60 case 2:
62 break;
63 default:
65 if (value == null)
66 {
67 return null;
68 }
69 break;
70 }
72 try
73 {
75 {
76 return value2;
77 }
79 return value;
80 }
81 finally
82 {
84 }
85 }
86 finally
87 {
89 }
90 }
91
92 public override Encoding? GetEncoding(string name)
93 {
95 if (codePageFromName == 0)
96 {
97 return null;
98 }
100 }
101
103 {
104 Encoding result = null;
105 switch (codepage)
106 {
107 case 57002:
108 case 57003:
109 case 57004:
110 case 57005:
111 case 57006:
112 case 57007:
113 case 57008:
114 case 57009:
115 case 57010:
116 case 57011:
117 result = new ISCIIEncoding(codepage);
118 break;
119 case 10008:
120 result = new DBCSCodePageEncoding(10008, 20936);
121 break;
122 case 10003:
123 result = new DBCSCodePageEncoding(10003, 20949);
124 break;
125 case 54936:
126 result = new GB18030Encoding();
127 break;
128 case 50220:
129 case 50221:
130 case 50222:
131 case 50225:
132 case 52936:
133 result = new ISO2022Encoding(codepage);
134 break;
135 case 50227:
136 case 51936:
137 result = new DBCSCodePageEncoding(codepage, 936);
138 break;
139 case 51932:
140 result = new EUCJPEncoding();
141 break;
142 case 51949:
143 result = new DBCSCodePageEncoding(codepage, 20949);
144 break;
145 case 38598:
146 result = new SBCSCodePageEncoding(codepage, 28598);
147 break;
148 }
149 return result;
150 }
151
153 {
155 }
156}
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
void Add(TKey key, TValue value)
static unsafe EncodingInfo[] GetEncodings(CodePagesEncodingProvider provider)
static unsafe int GetCodePageByteSize(int codePage)
override? Encoding GetEncoding(int codepage)
static readonly EncodingProvider s_singleton
override? Encoding GetEncoding(string name)
override IEnumerable< EncodingInfo > GetEncodings()
readonly Dictionary< int, Encoding > _encodings
static int GetCodePageFromName(string name)