web-dev-qa-db-ja.com

韓国語と中国語の文字を処理するSQLServerデータベースフィールド

SQL Serverに、中国語、韓国語、およびヨーロッパの文字を格納できるフィールドを作成することはできますか?私の漢字はちょうど?????になります

データ型もNVARCHARです。

18
Alessandro

NVARCHARは、これに適したタイプです。すべてを2バイトのUnicodeに格納します。

注意する必要があるのは、SQL Server ManagementStudioでNVARCHARフィールドを操作する場合です。その場合は絶対に必須N'....'プレフィックスを使用してください。

これを使用する場合:

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

次に、SSMSは一時的に変換指定した文字列リテラルをVARCHAR(非Unicode!)に変換するため、Unicodeでエンコードされた文字はすべて失われます。

ただし、以下を使用する場合:

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

(文字列リテラルの前の[〜#〜] n [〜#〜]プレフィックスに注意してください!)SSMSは、すべてを常にUnicodeとして処理し、中国語または韓国語(またはその他の)特殊文字を処理します。保存する必要があります。

37
marc_s