Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Masz problem z przechowywaniem UTF-8 w NVarChar w SQL Server 2008

Domyśliłam się! Podczas korzystania z klasy WebClient pobierałem dane jako ciąg.

Moja oryginalna konfiguracja...

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

Próbowałem przekonwertować te dane na UTF-16...z bieżącego ciągu, ale ponieważ Microsoft działa w UTF-16, sam zajął się konwersją.

Zamiast tego zmieniłem podejście do odczytywania rzeczywistej tablicy byte[] z danych w taki sposób...

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

To naprawiło problem i SQL poprawnie widzi teraz akcenty we wszystkim. Yippee.

Pozdrawiam wszystkich i dziękuję za pomoc!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Profiler — jak filtrować śledzenie, aby wyświetlać tylko zdarzenia z jednej bazy danych?

  2. Wstaw puste w kolumnie serwera sql z typem danych całkowitym

  3. serwer sql Wstaw zbiorczo csv z danymi zawierającymi przecinek

  4. SQL Dodaj klucz obcy do istniejącej kolumny

  5. jak sprawdzić unikalność (nie powielanie) posta w kanale rss