Mô t? v? lưu tr? d? li?u UTF-8 trong SQL Server

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 232580 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

TÓM T?T

M?t s? ?ng d?ng (đ?c bi?t là nh?ng đư?c d?a trên Web) ph?i đ?i phó v?i Unicode d? li?u đư?c m? hóa v?i các phương pháp m? hóa UTF-8. SQL Server 7.0 và SQL Server 2000 s? d?ng m?t khác nhau Unicode encoding (UCS-2) và không công nh?n UTF-8 như d? li?u nhân v?t h?p l?. Bài vi?t này th?o lu?n v? m?t s? tùy ch?n đ? đ?i phó v?i t?nh tr?ng này.

THÔNG TIN THÊM

Unicode d? li?u có th? đư?c m? hóa trong nhi?u cách khác nhau. UTF-8 và UCS-2 có hai cách ph? bi?n đ? lưu tr? các mô h?nh bit mà đ?i di?n cho k? t? Unicode. Microsoft Windows NT, SQL Server, Java, COM, và tr?nh đi?u khi?n SQL Server ODBC và OLEDB nhà cung c?p t?t c? các bên trong đ?i di?n cho Unicode d? li?u như UCS-2.

Các tùy ch?n đ? s? d?ng SQL Server 7.0 ho?c SQL Server 2000 như m?t máy ch? ph? tr? cho m?t ?ng d?ng g?i và nh?n d? li?u Unicode đư?c m? hóa như UTF-8 bao g?m:
  1. N?u ?ng d?ng c?a b?n s? d?ng Active Server Pages (ASP) và b?n đang s? d?ng Internet Information Server (IIS) 5.0 và Microsoft Windows 2000, b?n có th? thêm "< % Session.Codepage=65001% >" script ASP phía máy ch? c?a b?n. Đi?u này ch? th? IIS đ? chuy?n đ?i t?t c? các t?o đ?ng dây (ví d?: Response.Write) t? UCS-2 đ? UTF-8 t? đ?ng trư?c khi g?i chúng cho khách hàng.

    N?u b?n không mu?n đ? kích ho?t phiên, b?n có th? ho?c s? d?ng ch? th? phía máy ch? "< % @ CodePage = 65001% >".

    B?t k? d? li?u UTF-8 đư?c g?i t? các khách hàng đ?n máy ch? thông qua GET ho?c POST c?ng chuy?n đ?i sang UCS-2 t? đ?ng. B?t đ?ng s?n Session.Codepage là phương pháp đư?c đ? ngh? đ? x? l? d? li?u UTF-8 trong m?t ?ng d?ng web. Thi?t đ?t Codepage này không ph?i là có s?n trên IIS 4.0 và Windows NT 4.0. Đ? bi?t thêm chi ti?t, xem bài vi?t sau trong cơ s? ki?n th?c Microsoft:
    254313 Thông báo l?i: Ho?t đ?ng các trang l?i h? ph?c v? 'ASP 0203' m? không h?p l?
  2. D?ch đ?n và đi t? UCS-2 ho?c UTF-8 là thích h?p trong các ?ng d?ng. M? m?u cho các lo?i chuy?n đ?i đư?c đ?t t?i Unicode Consortium trang web:

    FTP://FTP.Unicode.org/Public/programs/CVTUTF/
    M?t mô t? ? c?p đ? cao c?a các thu?t toán đ? chuy?n đ?i UCS-2 đ? UTF-8 có th? đư?c t?m th?y trong tài li?u Internet yêu c?u cho ? ki?n RFC2279.

    Trên Windows NT ho?c Windows 2000, b?n có th? s? d?ng ch?c năng Win32 MultiByteToWideCharWideCharToMultiByte đ? chuy?n đ?i UTF-8 đ?n và đi t? UCS-2 b?ng cách đi qua CP_UTF8 liên t?c (65001) như tham s? đ?u tiên đ? các ch?c năng.
  3. S?a đ?i ?ng d?ng s? d?ng UCS-2 thay v? UTF-8 m? hóa.
  4. Lưu tr? d? li?u UTF-8 th?c t? trên máy ch? b?ng cách s? d?ng các c?t BINARY/VARBINARY/h?nh ?nh. Lưu tr? d? li?u UTF-8 ngày SQL Server có ngh?a r?ng b?n không th? s? d?ng SQL Server đ? s?p x?p ho?c t?m th?y ph?m vi c?a các giá tr? này như n?u d? li?u là d? li?u nhân v?t h?p l?. Các lo?i ho?t đ?ng kinh doanh trên c?t có ch?a d? li?u UTF-8 s? không tr? v? k?t qu? d? ki?n s? bao g?m "T? do", l?n hơn-hơn ">" và ít hơn-hơn "<" comparisons,="" and="" the="" built-in="" sql="" server="" string="" manipulation="" functions="" such="" as=""></">

    Tuy nhiên, b?nh đ?ng so sánh, s? làm vi?c mi?n là các dây đang đư?c so sánh tương đương ? m?c byte. Lưu ? r?ng n?u b?n lưu tr? d? li?u UTF-8 trong SQL Server b?n không nên s? d?ng k? t? c?t (CHAR/NCHAR/VARCHAR và vv). UTF-8 không ph?i là nhân v?t h?p l? d? li?u ph?c v? SQL, và b?ng cách lưu tr? d? li?u không k? t? trong c?t nhân v?t b?n có nguy cơ g?p ph?i nh?ng v?n đ? như các v?n đ? th?o lu?n trong bài vi?t cơ s? ki?n th?c Microsoft sau:
    155723 INF: SQL Server Truncation c?a m?t chu?i DBCS
    234748 PRB: Đi?u khi?n ODBC SQL Server chuy?n đ?i các s? ki?n ngôn ng? đ? Unicode
    N?u b?n đang xem xét tùy ch?n này, h?y nh? r?ng n?u b?n đ? bao gi? c?n đ? truy c?p d? li?u UTF-8 đư?c lưu gi? trong SQL Server t? b?t k? ?ng d?ng khác v?i m?t tr?nh duy?t Web (ví d?, t? m?t phi-Web d?a trên ODBC đơn) c?n thi?t đ? làm m?t chuy?n đ?i t? UTF-8 UCS-2 trong ?ng d?ng này như ODBC, OLEDB, COM, các cu?c g?i Win32 API, VB, và c runtime chu?i thao tác ch?c năng không làm vi?c v?i d? li?u UTF-8. Đi?u này di chuy?n gánh n?ng c?a b?n d?ch sang m?t ?ng d?ng khác nhau.
  5. N?u yêu c?u c?a b?n không bao g?m s? c?n thi?t đ? lưu tr? d? li?u t? m?t s? k?t h?p c?a ngôn ng? mà không th? đư?c hài l?ng b?i m?t trang duy nh?t m?, b?n có th? không c?n ph?i s? d?ng Unicode.
H? tr? Unicode đư?c gi?i thi?u v?i SQL Server b?t đ?u v?i SQL Server 7.0. K? t? khi SQL Server 6,5 không h? tr? lưu tr? d? li?u Unicode, các l?a ch?n duy nh?t cho SQL Server 6,5 đư?c nêu trong bư?c 4 và bư?c 5.

Thu?c tính

ID c?a bài: 232580 - L?n xem xét sau cùng: 21 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
T? khóa: 
kbinfo kbmt KB232580 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:232580

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com