2011-01-19 28 views

Trả lời

27

NVARCHAR là loại thích hợp cho việc này - nó lưu trữ mọi thứ bằng mã Unicode 2 byte.

Những gì bạn cần chú ý đến là khi làm việc với NVARCHAR trường trong SQL Server Management Studio - bạn hoàn toàn phải sử dụng tiền tố N'....' trong trường hợp đó!

Nếu bạn sử dụng này:

INSERT INTO dbo.YourTable(NVarcharColumn) 
    VALUES('Some Chinese text here') 

sau đó SSMS sẽ tạm thời chuyển đổi chuỗi chữ bạn chỉ định vào VARCHAR và do đó bạn sẽ mất bất kỳ ký tự Unicode mã hóa (non-Unicode!).

Tuy nhiên, nếu bạn sử dụng:

INSERT INTO dbo.YourTable(NVarcharColumn) 
    VALUES(N'Some Chinese text here') 

(! Lưu ý N tiền tố trước khi chuỗi chữ) sau đó SSMS sẽ xử lý tất cả mọi thứ như Unicode tất cả các thời gian, và Trung Quốc hay Hàn Quốc (hoặc khác) của bạn các ký tự đặc biệt cần được bảo toàn.

+0

cảm ơn vì điều này, nó dường như không hoạt động mặc dù .. Tôi có một cảm giác tôi đang thiếu một số thiết lập một nơi nào đó? – Alessandro

+0

@Alessandro: bạn đang cố xử lý dữ liệu trong SSMS hay từ ứng dụng khách? Ngoài ra: collation nào bạn sử dụng trên máy chủ của bạn và trên cơ sở dữ liệu của bạn ?? –

+0

Thông qua ứng dụng web dựa trên coldfusion .. Mặc dù tôi đã thử tập lệnh đó trực tiếp trong SSMS MÁY CHỦ Thu gọn: SQL_Latin1_General_CP1_CI_AS DB COLLATION: SQL_Latin1_General_CP1_CI_AS – Alessandro

Các vấn đề liên quan