2010-09-10 18 views
11

Ho bisogno di inserire caratteri cinesi nel mio database ma mostra sempre ???? ..Come visualizzare la lettera orientale (carattere cinese) su SQL Server/SQL Reporting Services?

Esempio:

Inserire questo record.

微波 室外 单元 -Apple

poi è diventato ???

Risultato:

?????? - Apple

ho davvero bisogno di aiuto ... grazie in materia.

Sto usando MSSQL Server 2008

+0

Si può indicare quale versione di SQL si sta utilizzando, ad esempio MSSql-2002 o MSSql2005 o MSSql-2008 – FosterZ

+1

Che cos'è una "Unità esterna a microonde"? (complimenti di translate.google.com) – ErikE

+0

Qualche possibilità che tu possa condividere con noi quale fosse la soluzione per te? Era la necessità di una colonna unicode (o "nativa" come n in nvarchar significa)? – ErikE

risposta

3

Provare ad aggiungere le lingue appropriate alle impostazioni locali di Windows. dovrai assicurarti che il tuo computer di sviluppo sia impostato per visualizzare i caratteri non Unicode nella lingua appropriata. e naturalmente u bisogno di usare NVARCHAR per feilds lingua straniera

0

Assicurarsi di aver impostato una codifica per il database a uno che supporta questi caratteri. UTF-8 è la codifica de facto poiché è compatibile ASCII ma supporta tutti i punti di codice Unicode 1114111.

+0

Come impostare UTF-8? – Crimsonland

+0

SQL Server non esegue UTF-8. È una cosa Microsoft, vogliono sempre che tu usi UTF-16 per Unicode, il che significa usare i tipi di stringhe 'NVARCHAR', ecc. – bobince

+0

Gah, che fa schifo.Scusa, non lo sapevo dato che provengo da un background generale/MySQL. –

6

Assicurarsi che la colonna che si sta inserendo a è nchar, nvarchar, o ntext. Se inserisci una stringa Unicode in una colonna ANSI, otterrai davvero punti interrogativi nei dati.

Inoltre, fare attenzione a verificare che quando si tira i dati indietro non sei solo vedere un problema di visualizzazione cliente, ma sono in realtà sempre la questione segna di nuovo:

SELECT Unicode(YourColumn), YourColumn FROM YourTable 

Si noti che la funzione restituisce Unicode il codice del solo primo carattere nella stringa.

Una volta stabilito se la colonna stia effettivamente memorizzando i dati correttamente, postback e ti aiuteremo di più.

+0

Intendevi la colonna ANSI os ASCII? – frandevel

+0

Intendevo ANSI. Prova a cercare [ANSI vs Unicode] (http://google.com/?q=ANSI+vs+Unicode) per la comprensione. – ErikE

15

Assicurarsi di specificare una stringa Unicode con una N maiuscola quando si inserisce come:

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

e che Table1 (Col1) è un tipo di dati NVARCHAR .

+0

SQL-server è case insensitve –

Problemi correlati