sql >> Databasteknik >  >> RDS >> Sqlserver

Har problem med UTF-8-lagring i NVarChar i SQL Server 2008

Tänkte ut det! När jag använde WebClient-klassen laddade jag ner data som en sträng.

Min ursprungliga konfiguration...

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

Jag försökte konvertera denna data till en UTF-16...från den nuvarande strängen, men eftersom Microsoft arbetar i UTF-16 hade den hanterat konverteringen på egen hand.

Istället ändrade jag mitt tillvägagångssätt för att läsa den faktiska byte[]-arrayen från data som så...

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);
}

Detta löste problemet, och SQL ser korrekt accenterna i allt nu. Japp.

Hej alla, och tack för er hjälp!



  1. exekvera två procedurer med en händelse

  2. Returnerar parametrar i Oracle SQL insert-satser

  3. MySQL atomoperationer och bordslåsning

  4. Sätt att åtgärda SQL Server upptäckte ett logiskt konsistensbaserat I/O-fel