Tema: China SQL
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/09/2009, 22:29
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: China SQL

Recuerda que el collation definido en un campo NVARCHAR sólo define las reglas de ordenamiento y comparación. En un campo VARCHAR, el collation restringe además el conjunto de caracteres representables.
El collation elegido entonces, merece especial consideración, ya que si entre los distintos "sitios del mundo" tuvieras algo diferente al chino (por ejemplo kanjis, caracteres cirílicos o hindis), las reglas de ordenamiento probablemente no sean las mismas.
Finalizando esta larga explicación, tu problema es muy simple:
Defines correctamente los campos como NVARCHAR, lo cual te permitirá almacenar cualquier caracter UNICODE (chinos incluídos), pero al insertar estás metiendo tu texto chino en una cadena VARCHAR, lo cual inserta esos ??????.
Debes recordar siempre que un literal NVARCHAR se forma anteponiendo una N a la cadena.
Código:
VALUES (1,5,N'查找互联网上的商户',1,1,1,N'自治区‎')
Desde tu aplicación ASP.Net, cuando ejecutes tus procedimientos los parametros deben ser de tipo SqlDbType.NVarChar para evitarte problemas.

Saludos.