2016-05-03 20 views
0

I know UNICODEとして保存するには、SQL Server(2012)INSERTステートメントで文字列をN 'の接頭辞にする必要がありますが、特定の方法で検索する必要があります(SELECTステートメント)彼らはユニコードでいますか?Unicode文字列をSQL Serverから読み取る

国際的な文字列をN表記で正しく格納することができますが、SELECTクエリを実行してレコードをフェッチすると疑問符として表示されます。私の質問はとても簡単です。

SELECT COLUMN1, COLUMN2 FROM TABLE1 

私は、この問題の原因となったが、少なくとも私は、上記のSQL文を排除したいしている可能性があり、他の可能な理由で探しています。 N表記を使用してUNICODE文字列を両方とも格納すると、COLUMN1列とCOLUMN2列を正しく読み取る必要がありますか?私はUNICODEであることを宣言するために何かをしなければならないのですか?

+0

「それは疑問符」SQL Server Management Studioまたはアプリケーションですか?それがSSMSで動作するかどうかを確認します。そうすれば、おそらくあなたのアプリケーションはデータを正しく読み取れません(ドライバ、エンコーディング、...) – lad2025

+0

@ lad2025私のアプリケーション – zar

答えて

0

SSMSでコードが正常に動作するはずです。そうでない場合は、次を試してください。

SELECT UNICODE(COLUMN1), UNICODE(COLUMN2) FROM TABLE1 

アプリケーションコードで変換が失敗しています。再訪してください。

0

管理スタジオ内では、正しい値を表示するために特別な操作を行う必要はありません。テーブルの列がANSI文字列VARCHARの代わりにUnicode文字列NVARCHARとして定義されていることを確認します。上記の例で

CREATE TABLE UnicodeExample 
    (
     MyUnicodeColumn NVARCHAR(100) 
     ,MYANSIColumn VARCHAR(100) 
    ) 

    INSERT INTO UnicodeExample 
    (
     MyUnicodeColumn 
     ,MYANSIColumn 
    ) 
    VALUES 
    (
     N'איש' 
     ,N'איש' 
    ) 

    SELECT * 
    FROM UnicodeExample 

    DROP TABLE UnicodeExample 

列MyUnicodeColumnがNVARCHAR(100)として定義され、MYANSIColumnはVARCHAR(100)のように定義される:

次の例は、概念を実証します。クエリはMyUnicodeColumnの結果を正しく返しますが、??? MYANSIColumの場合。

関連する問題