Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Probleme mit UTF-8-Speicherung in NVarChar in SQL Server 2008

Herausgefunden! Bei der Verwendung der WebClient-Klasse habe ich die Daten als Zeichenfolge heruntergeladen.

Meine ursprüngliche Konfiguration...

System.Net.WebClient wc = new WebClient();
string htmlData = wc.DownloadString(myUri);

Ich habe versucht, diese Daten aus ihrer aktuellen Zeichenfolge in UTF-16 zu konvertieren, aber da Microsoft in UTF-16 arbeitet, hat es die Konvertierung selbst durchgeführt.

Stattdessen habe ich meinen Ansatz geändert, um das eigentliche byte[]-Array aus den Daten wie folgt zu lesen ...

System.Net.WebClient wc = new WebClient();
string htmlData = UTFConvert(wc.DownloadData(myUri));

private string UTFConvert(byte[] utfBytes)
{
    byte[] isoBytes = Encoding.Convert(Encoding.UTF8, Encoding.Unicode, utfBytes);
    return Encoding.Unicode.GetString(isoBytes);
}

Dadurch wurde das Problem behoben, und SQL erkennt jetzt die Akzente in allem korrekt. Yippie.

Grüße an alle und danke für eure Hilfe!