2011-01-19 13 views

Respuesta

27

NVARCHAR es el tipo adecuado para esto - almacena todo en un Unicode de 2 bytes.

Lo que hay que prestar atención es cuando se trabaja con NVARCHAR campos en SQL Server Management Studio - a pesar de todo debe utilizar el prefijoN'....' en ese caso!

Si se utiliza este:

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

continuación SSMS se convertir temporalmente la cadena literal que se especifique en VARCHAR y así perderás ningún caracteres codificados en Unicode (no Unicode!).

Sin embargo, si se utiliza:

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

(NOTA: Los N prefijo antes de la cadena literal), entonces SSMS se encargará de todo como Unicode todo el tiempo, y el chino o coreano (u otro) los caracteres especiales deben ser preservados.

+0

gracias por esto, aunque parece que no funciona ... ¿Tengo la sensación de que me falta algo en algún lugar? – Alessandro

+0

@ Alessandro: ¿está tratando de manejar datos en SSMS o desde una aplicación cliente? Además, ¿qué colación usa en su servidor y en su base de datos? –

+0

A través de una aplicación web basada en ColdFusion. Aunque probé esa secuencia de comandos directamente en SSMS COLECCIÓN DEL SERVIDOR: SQL_Latin1_General_CP1_CI_AS COLECCIÓN DE LA BD: SQL_Latin1_General_CP1_CI_AS – Alessandro

Cuestiones relacionadas