Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Gặp sự cố với UTF-8 lưu trữ trong NVarChar trong SQL Server 2008

Tìm ra! Khi sử dụng lớp WebClient, tôi đang tải xuống dữ liệu dưới dạng một chuỗi.

Cấu hình ban đầu của tôi ...

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

Tôi đã cố chuyển đổi dữ liệu này thành UTF-16 ... từ chuỗi hiện tại của nó, nhưng vì Microsoft hoạt động trong UTF-16 nên nó đã tự xử lý chuyển đổi.

Thay vào đó, tôi chuyển cách tiếp cận của mình sang đọc mảng [] byte thực tế từ dữ liệu như vậy ...

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

Điều này đã khắc phục sự cố và SQL xem chính xác các trọng tâm trong mọi thứ bây giờ. Yippee.

Chúc mừng tất cả và cảm ơn sự giúp đỡ của bạn!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng cột thứ tự sắp xếp trong bảng cơ sở dữ liệu

  2. Không có đủ bộ nhớ hệ thống trong nhóm tài nguyên 'nội bộ'

  3. Đặt giá trị ngày giờ UTC ở đâu trong ứng dụng n-tier:Lớp trình bày, Miền hoặc Cơ sở dữ liệu?

  4. Hàm giống QUALIFY trong SQL Server

  5. SQL - Truy vấn để lấy địa chỉ IP của máy chủ