2012-05-10 9 views
6

Chcę użyć tekstu Unicode w mojej witrynie. Mam nvarchar (max) typ danych w bazie danych do przechowywania danych. Kiedy zapisuję tekst unicode w bazie danych, to działa dobrze. Jednak gdy próbuję wykonać niektóre operacje sql, tekst Unicode zmienia się na "?????" Np zapytanie poniżejprzy użyciu tekstu Unicode w serwerze sql 2008

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

wyników

sqlunicode

Jakie jest rozwiązanie tego problemu? Dzięki

+0

Jaki jest domyślnym sortowaniem bazy danych? – Oded

+0

@Oded Domyślne sortowanie to SQL_Latin1_General_CP1_CI_AS – Paras

Odpowiedz

10

Spróbuj

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

Być może zauważyliście, że SQL Server używa N do dowolnego wejścia cytowanym strun podczas generowania skryptów DDL dla Ciebie.

+0

Dobre miejsce. Tekst w Unicode musi zostać zakwalifikowany jako taki za pomocą modyfikatora 'N'. – Oded

1

trzeba ustawić sortowania bazy danych do zestawień, które akceptuje ten rodzaj znaku lub można dodać klauzulę sortowania na własną wybierz tak (google powiedział mi, że jest to hinduski znak)

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

że przyzwyczajenie praca, ale znalazłem to na BOL dla SQL Server 2005:

4 hindi sortowania jest przestarzałe w SQL Server 2005, ponieważ 2000 sortowania tabeli Windows jest używany w tym wydaniu programu SQL Server. Na serwerze nadal istnieje zestawienie , ale nie będzie ono obsługiwane w wersji przyszłej wersji programu SQL Server i nie pojawi się w wersji :: fn_helpcollations().

5 Hindi i Lithuanian_Classic sortowania są nieaktualne w SQL Server 2005. Te sortowania nadal istnieć na serwerze, ale będą nie być obsługiwane w przyszłych wersjach SQL Server, a oni nie wykazują w :: fn_helpcollations().

na rok 2008:

hindi (Indie) - Niedostępne na poziomie serwera

Powiązane problemy