Skip to content

Commit b9c7eb5

Browse files
committed
Encoding fixes (DNET-763, DNET-747)
1 parent 9e9ed4b commit b9c7eb5

File tree

11 files changed

+67
-35
lines changed

11 files changed

+67
-35
lines changed

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/Version10/GdsDatabase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ protected virtual void SendAttachToBuffer(DatabaseParameterBuffer dpb, string da
194194
{
195195
dpb.Append(IscCodes.isc_dpb_password, Password);
196196
}
197-
XdrStream.WriteBuffer(Encoding.UTF8.GetBytes(database));
197+
XdrStream.WriteBuffer(Encoding2.Default.GetBytes(database));
198198
XdrStream.WriteBuffer(dpb.ToArray());
199199
}
200200

@@ -312,7 +312,7 @@ protected virtual void SendCreateToBuffer(DatabaseParameterBuffer dpb, string da
312312
{
313313
dpb.Append(IscCodes.isc_dpb_password, Password);
314314
}
315-
XdrStream.WriteBuffer(Encoding.UTF8.GetBytes(database));
315+
XdrStream.WriteBuffer(Encoding2.Default.GetBytes(database));
316316
XdrStream.WriteBuffer(dpb.ToArray());
317317
}
318318

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Native/FesConnection.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public static IscException ParseStatusVector(IntPtr[] statusVector, Charset char
6565
{
6666
IntPtr ptr = statusVector[i++];
6767
string s = Marshal.PtrToStringAnsi(ptr);
68-
string arg_value = charset.GetString(Encoding.UTF8.GetBytes(s));
68+
string arg_value = charset.GetString(Encoding2.Default.GetBytes(s));
6969
exception.Errors.Add(new IscError(arg.AsInt(), arg_value));
7070
}
7171
break;
@@ -76,7 +76,7 @@ public static IscException ParseStatusVector(IntPtr[] statusVector, Charset char
7676

7777
IntPtr ptr = statusVector[i++];
7878
string s = Marshal.PtrToStringAnsi(ptr);
79-
string arg_value = charset.GetString(Encoding.UTF8.GetBytes(s));
79+
string arg_value = charset.GetString(Encoding2.Default.GetBytes(s));
8080
exception.Errors.Add(new IscError(arg.AsInt(), arg_value));
8181
}
8282
break;
@@ -89,7 +89,7 @@ public static IscException ParseStatusVector(IntPtr[] statusVector, Charset char
8989
{
9090
IntPtr ptr = statusVector[i++];
9191
string s = Marshal.PtrToStringAnsi(ptr);
92-
string arg_value = charset.GetString(Encoding.UTF8.GetBytes(s));
92+
string arg_value = charset.GetString(Encoding2.Default.GetBytes(s));
9393
exception.Errors.Add(new IscError(arg.AsInt(), arg_value));
9494
}
9595
break;

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Native/FesDatabase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public void Dispose()
150150

151151
public void CreateDatabase(DatabaseParameterBuffer dpb, string dataSource, int port, string database)
152152
{
153-
byte[] databaseBuffer = Encoding.UTF8.GetBytes(database);
153+
byte[] databaseBuffer = Encoding2.Default.GetBytes(database);
154154

155155
ClearStatusVector();
156156

@@ -204,7 +204,7 @@ public void CancelEvents(RemoteEvent events)
204204

205205
public void Attach(DatabaseParameterBuffer dpb, string dataSource, int port, string database)
206206
{
207-
byte[] databaseBuffer = Encoding.UTF8.GetBytes(database);
207+
byte[] databaseBuffer = Encoding2.Default.GetBytes(database);
208208

209209
ClearStatusVector();
210210

Provider/src/FirebirdSql.Data.FirebirdClient/Common/Charset.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -157,14 +157,14 @@ private static void TryAddCharset(List<Charset> charsets, Func<Charset> charsetC
157157
private string _name;
158158
private string _systemName;
159159
private Encoding _encoding;
160-
private bool _isNone;
161-
private bool _isOctets;
160+
private bool _isNone;
161+
private bool _isOctets;
162162

163-
#endregion
163+
#endregion
164164

165-
#region Properties
165+
#region Properties
166166

167-
public int Identifier
167+
public int Identifier
168168
{
169169
get { return _id; }
170170
}
@@ -199,17 +199,17 @@ public Charset(int id, string name, int bytesPerCharacter, string systemName)
199199
_name = name;
200200
_bytesPerCharacter = bytesPerCharacter;
201201
_systemName = systemName;
202-
_isNone = false;
203-
_isOctets = false;
204-
switch (_systemName)
202+
_isNone = false;
203+
_isOctets = false;
204+
switch (_systemName)
205205
{
206206
case None:
207-
_encoding = Encoding.GetEncoding(0);
208-
_isNone = true;
209-
break;
207+
_encoding = Encoding2.Default;
208+
_isNone = true;
209+
break;
210210
case Octets:
211211
_encoding = new BinaryEncoding();
212-
_isOctets = true;
212+
_isOctets = true;
213213
break;
214214
default:
215215
_encoding = Encoding.GetEncoding(_systemName);

Provider/src/FirebirdSql.Data.FirebirdClient/Common/DatabaseParameterBuffer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void Append(int type, int value)
5555

5656
public void Append(int type, string content)
5757
{
58-
Append(type, Encoding.UTF8.GetBytes(content));
58+
Append(type, Encoding2.Default.GetBytes(content));
5959
}
6060

6161
public void Append(int type, byte[] buffer)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* Firebird ADO.NET Data provider for .NET and Mono
3+
*
4+
* The contents of this file are subject to the Initial
5+
* Developer's Public License Version 1.0 (the "License");
6+
* you may not use this file except in compliance with the
7+
* License. You may obtain a copy of the License at
8+
* http://www.firebirdsql.org/index.php?op=doc&id=idpl
9+
*
10+
* Software distributed under the License is distributed on
11+
* an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
12+
* express or implied. See the License for the specific
13+
* language governing rights and limitations under the License.
14+
*
15+
* Copyright (c) 2017 Jiri Cincura ([email protected])
16+
* All Rights Reserved.
17+
*/
18+
19+
using System.Text;
20+
21+
namespace FirebirdSql.Data.Common
22+
{
23+
static class Encoding2
24+
{
25+
public static Encoding Default
26+
#if NETSTANDARD1_6
27+
=> Encoding.UTF8;
28+
#else
29+
=> Encoding.Default;
30+
#endif
31+
}
32+
}

Provider/src/FirebirdSql.Data.FirebirdClient/Common/EventParameterBuffer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public EventParameterBuffer()
3333

3434
public void Append(string content, int actualCount)
3535
{
36-
Append(Encoding.UTF8.GetBytes(content), actualCount);
36+
Append(Encoding2.Default.GetBytes(content), actualCount);
3737
}
3838

3939
public void Append(byte[] content, int actualCount)

Provider/src/FirebirdSql.Data.FirebirdClient/Common/IscHelper.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ public static ArrayList ParseDatabaseInfo(byte[] buffer)
6868
* - 1 byte containing the length, l, of the site name in bytes
6969
* - A string of l bytes, containing the site name
7070
*/
71-
string dbFile = Encoding.UTF8.GetString(buffer, pos + 2, buffer[pos + 1]);
71+
string dbFile = Encoding2.Default.GetString(buffer, pos + 2, buffer[pos + 1]);
7272
int sitePos = pos + 2 + buffer[pos + 1];
7373
int siteLength = buffer[sitePos];
74-
string siteName = Encoding.UTF8.GetString(buffer, sitePos + 1, siteLength);
74+
string siteName = Encoding2.Default.GetString(buffer, sitePos + 1, siteLength);
7575

7676
sitePos += siteLength + 1;
7777
siteLength = buffer[sitePos];
78-
siteName += "." + Encoding.UTF8.GetString(buffer, sitePos + 1, siteLength);
78+
siteName += "." + Encoding2.Default.GetString(buffer, sitePos + 1, siteLength);
7979

8080
info.Add(siteName + ":" + dbFile);
8181
break;
@@ -138,7 +138,7 @@ public static ArrayList ParseDatabaseInfo(byte[] buffer)
138138
for (int i = 0; i < count; i++)
139139
{
140140
var messageLength = buffer[messagePosition + 1];
141-
info.Add(Encoding.UTF8.GetString(buffer, messagePosition + 2, messageLength));
141+
info.Add(Encoding2.Default.GetString(buffer, messagePosition + 2, messageLength));
142142
messagePosition += 1 + messageLength;
143143
}
144144
break;
@@ -302,7 +302,7 @@ public static ArrayList ParseDatabaseInfo(byte[] buffer)
302302

303303
case IscCodes.isc_info_user_names:
304304
// Active user name
305-
info.Add(Encoding.UTF8.GetString(buffer, pos + 1, buffer[pos]));
305+
info.Add(Encoding2.Default.GetString(buffer, pos + 1, buffer[pos]));
306306
break;
307307
}
308308

Provider/src/FirebirdSql.Data.FirebirdClient/Common/ServiceParameterBuffer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ public void Append(int type, int value)
4545

4646
public void Append(int type, string value)
4747
{
48-
Append(type, Encoding.UTF8.GetBytes(value));
48+
Append(type, Encoding2.Default.GetBytes(value));
4949
}
5050

5151
public void Append(byte type, string value)
5252
{
53-
Append(type, Encoding.UTF8.GetBytes(value));
53+
Append(type, Encoding2.Default.GetBytes(value));
5454
}
5555

5656
public void Append(int type, byte[] value)

Provider/src/FirebirdSql.Data.FirebirdClient/Common/TransactionParameterBuffer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void Append(int type, short value)
3939

4040
public void Append(int type, string content)
4141
{
42-
Append(type, Encoding.UTF8.GetBytes(content));
42+
Append(type, Encoding2.Default.GetBytes(content));
4343
}
4444

4545
public void Append(int type, byte[] buffer)

0 commit comments

Comments
 (0)