2

html フォームなどのアクセント付き文字を受け入れḾấxiḿứśます。休止状態を使用してデータベースに保存すると、文字列は次のようになります。??xi???

次に、アクセント付きの単語をデータベースに直接書き込もうとして、SQL の更新を行いましたが、同じ結果が発生しました。

望ましい動作は、データベースにそのまま設定することです。

Microsoft SQL Server 2008 を使用しています。

私はそれをグーグルで検索しようとしましたが、データベースの照合順序を に変更する必要があると誰かが言いましたSQL_Latin1_General_CP1_CI_AI。しかし、ドロップダウンからこのオプションを見つけることができません。

4

3 に答える 3

5

これらのうち 1 つだけが機能します: nvarchar データ型と Unicode 定数の N プレフィックス。

DECLARE 
    @foo1 varchar(10) = 'Ḿấxiḿứś', 
    @foo2 varchar(10) = N'Ḿấxiḿứś', 
    @fooN1 nvarchar(10) = 'Ḿấxiḿứś', 
    @fooN2 nvarchar(10) = N'Ḿấxiḿứś';

SELECT @foo1, @foo2, @fooN1, @fooN2;

すべてのデータ型が nvarchar エンド ツー エンド (列、パラメーターなど) であることを確認する必要があります。

照合は問題ではありません。これは、nvarchar の並べ替えと比較のためのものです。

于 2013-05-16T11:36:20.837 に答える
0
ALTER TABLE "tablename"

Alter COLUMN "columnname" nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS
于 2013-05-16T11:43:21.640 に答える