2010-09-10 29 views
11

Necesito insertar caracteres chinos en mi base de datos pero siempre se muestran ???? ..Cómo mostrar la letra oriental (carácter chino) en SQL Server/SQL Reporting Services?

Ejemplo:

insertar este registro.

微波 室外 单元 -Apple

Finalmente se tornó ???

Resultado:

?????? - Apple

que realmente necesitan ayuda ... gracias de sentido.

estoy usando MSSQL Server 2008

+0

¿puede mencionar qué versión de SQL está utilizando, es decir, MSSql-2002 o MSSql2005 o MSSql-2008 – FosterZ

+1

¿Qué es una "unidad exterior de microondas"? (complementos de translate.google.com) – ErikE

+0

¿Alguna posibilidad de compartir con nosotros cuál fue la solución para usted? ¿Era la necesidad de una columna Unicode (o "nativo" como el n en nvarchar significa)? – ErikE

Respuesta

3

Intente agregar los idiomas apropiados a sus ajustes de configuración regional de Windows. deberá asegurarse de que su máquina de desarrollo esté configurada para mostrar caracteres no Unicode en el idioma apropiado. Y por supuesto u necesidad de utilizar NVarchar para feilds idiomas extranjeros

0

Asegúrese de que ha establecido una codificación de la base de datos a uno que es compatible con estos personajes. UTF-8 es la de facto codificación, ya que es compatible con ASCII pero es compatible con todos los puntos de código Unicode 1114111.

+0

Cómo configurar UTF-8? – Crimsonland

+0

SQL Server no funciona con UTF-8. Es algo de Microsoft, siempre quieren que uses UTF-16 para Unicode, lo que significa usar los tipos de cadenas 'NVARCHAR', etc. – bobince

+0

Gah, eso apesta.Lo siento, no sabía eso ya que vengo de un fondo general/MySQL. –

6

Asegúrese de que la columna que está insertando a es nchar, nvarchar o ntext. Si inserta una cadena Unicode en una columna ANSI, realmente obtendrá signos de interrogación en los datos.

Además, tenga cuidado de comprobar que cuando se tire de los datos de vuelta que no sólo está viendo un problema de pantalla del cliente, pero en realidad se está consiguiendo la vuelta signos de interrogación:

SELECT Unicode(YourColumn), YourColumn FROM YourTable 

Tenga en cuenta que los rendimientos de función Unicode el código del único primer carácter en la cadena.

Una vez que haya determinado si la columna realmente está almacenando los datos correctamente, publique nuevamente y le ayudaremos más.

+0

¿Quiso decir ANSI os columna ASCII? – frandevel

+0

Quise decir ANSI. Intente buscar [ANSI vs Unicode] (http://google.com/?q=ANSI+vs+Unicode) para entender. – ErikE

15

Asegúrese de especificar una cadena Unicode con una N mayúscula cuando se inserta como:

INSERT INTO Table1 (Col1) SELECT N'微波室外单元-Apple' AS [Col1] 

y que la Tabla 1 (Col1) es un tipo de datos NVARCHAR .

+0

SQL-server es case insensitve –

Cuestiones relacionadas