2012-06-26 43 views
5

Tôi đang cố gắng thêm một số văn bản ba tư vào cơ sở dữ liệu SQL Server 2005 của mình.Số Ba Tư trong SQL Server 2005

Không có vấn đề với chữ cái, nhưng số persian (۱،۲،۳،...) được chuyển đổi thành ? ...

Ví dụ, nếu tôi thêm văn bản này (سلام ۱۲۳۴‍‍‍) để cơ sở dữ liệu, sẽ có (سلام ؟؟؟؟) trong cơ sở dữ liệu/

Tôi nên làm gì? (ví dụ: tôi nên sử dụng đối chiếu nào?)

Tôi đang sử dụng số Arabic_CI_AS đối chiếu. trong danh sách this, Farsi (Persian) collation là Arabic_CI_AS (SQL Server 2005 không có Persian collation, nhưng 2008 có!)

Lưu ý: Tôi không thể sử dụng phiên bản mới của SQL Server ...

+1

là bằng một trong những kiểu dữ liệu unicode (NCHAR, nvarchar) một lựa chọn? – Robb

+0

Tôi đang sử dụng loại dữ liệu 'nvarchar'. –

Trả lời

7

Nếu bạn chèn xâu, hãy chắc chắn để đánh dấu chuỗi với N '' Unicode, như

select N'سلام ۱۲۳۴‍‍‍' 

Tiếp theo, hãy chắc chắn liệu các dấu hỏi chỉ có một vấn đề hiển thị trong SSMS:

declare @t nvarchar(50) = N'سلام ۱۲۳۴‍‍‍' 
select unicode(substring(@t, 1, 1)) 
select unicode(substring(@t, 2, 2)) 
select unicode(substring(@t, 3, 3)) 
select unicode(substring(@t, 4, 4)) 

trả về giá trị Unicode cho mỗi nhân vật:

1587 
1604 
1575 
1605 

Tôi nhớ rằng SSMS 2005 có vấn đề hiển thị nhất định Unicode dao động trong cửa sổ kết quả.

1

Bạn có thể sử dụng Arabic_CI_AI chiếu và Giải quyết vấn đề này Tôi hy vọng rằng sẽ giúp bạn ..

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