2012-05-10 18 views
6

Sitemde unicode metni kullanmak istiyorum. Verileri depolamak için veritabanında nvarchar (max) veri türü var. Unicode metni veritabanına kaydettiğimde, iyi çalışıyor. Ancak, bazı sql işlemlerini yapmaya çalıştığımda unicode metni "?????" olarak değiştirildi Örneğin,sql sunucusunda unicode metin kullanma 2008

declare @unicodetext nvarchar(250) 
set @unicodetext='बन्द' 
select @unicodetext 

sonuçları

sqlunicode

Bunun çözümü nedir

Aşağıdaki sorgu? Teşekkür

+0

veritabanının varsayılan harmanlama nedir mevcut değil mi? – Oded

+0

@Oded Varsayılan harmanlama SQL_Latin1_General_CP1_CI_AS – Paras

cevap

10

declare @unicodetext nvarchar(250) 
set @unicodetext = N'बन्द' 
select @unicodetext 

Belki sizin için DDL komut dosyalarını oluştururken SQL Server herhangi alıntı dize girdisine N kullandığını fark deneyin. Eğer karakteri bu tür kabul eder veya bu gibi seçkin üzerinde harmanlama maddeyi ekleyebileceğiniz bir harmanlama veritabanı harmanlama belirlemek zorunda

+0

İyi nokta. Unicode metni, 'N' değiştiricisini kullanarak nitelendirilmelidir. – Oded

1

declare @unicodetext nvarchar(250) 
set @unicodetext='बन्द' 
select @unicodetext 
COLLATE Indic_General_90_CI_AS 

(google bu bir Hintçe karakterdir bana) o işe alışkanlık ama SQL Server 2005 BOL bu bulundu: Windows 2000 tasnif tablo bu SQL Server sürümde kullanıldığı için

4 Hintçe harmanlama SQL Server 2005'te kaldırılmıştır. harmanlama hala sunucuda var, ancak gelecekteki bir SQL Server sürümde desteklenmeyecek ve :: fn_helpcollations() içinde görünmüyor.

5 Hintçe ve Lithuanian_Classic alfabe Sunucu 2005. Bu alfabe hala sunucuda mevcut, ancak gelecekteki bir SQL Server sürümünde desteklenecektir olmayacak ve onlar görünmüyor SQL kullanımdan kaldırılmıştır :: fn_helpcollations(). 2008 yılı için

:

Hintçe (Hindistan) - Sunucu düzeyinde