2011-01-19 36 views

risposta

27

NVARCHAR è il tipo corretto per questo: memorizza tutto in Unicode a 2 byte.

ciò che è necessario prestare attenzione è quando si lavora con NVARCHAR campi in SQL Server Management Studio - è assolutamente necessario utilizzare il prefisso N'....' in questo caso!

Se si utilizza questo:

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

poi SSMS sarà temporaneamente convertire la stringa letterale specificata in VARCHAR e quindi perderai tutti i caratteri Unicode codificati (non Unicode!).

Tuttavia, se si utilizza:

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

(! Notare il prefisso N prima della stringa letterale) poi SSMS si occuperà di tutto come Unicode per tutto il tempo, e il vostro cinese o coreano (o altro) i caratteri speciali dovrebbero essere preservati.

+0

grazie per questo, non sembra funzionare però .. Ho la sensazione che mi manchi qualche impostazione da qualche parte? – Alessandro

+0

@Alessandro: stai cercando di gestire i dati in SSMS o da un'applicazione client? Inoltre: quale collation usi sul tuo server e sul tuo database ?? –

+0

Tramite un'applicazione web basata su coldfusion. Anche se ho provato quello script direttamente in SSMS SERVER COLLATION: SQL_Latin1_General_CP1_CI_AS DB COLLATION: SQL_Latin1_General_CP1_CI_AS – Alessandro

Problemi correlati