2

次の構造で構成されるテーブルがあります。

 CREATE TABLE [dbo].[tblData](
    [ID] [numeric](18, 0) NOT NULL,
    [QID] [varchar](25) NOT NULL,
    [Data] [nvarchar](255) NULL,
  CONSTRAINT [PK_tblData] PRIMARY KEY CLUSTERED 
   (
      [ID] ASC,
      [QID] ASC
   )
 ) ON [PRIMARY]

上記の例では、[データ] 列にさまざまな言語が混在しています。このデータは、適切なコード ページを設定する Web サイトを介して収集します。私たちのテーブルに挿入されたデータは、データが収集された時点で Web ページで設定されていたコード ページであることを理解しています。この情報は別の場所に保存されています。

私たちが使用しているすべての言語は、問題なくテーブルから出てきています。たとえば、必要に応じて中国語が出てきて表示されます。このデータを Unicode テキスト ファイルにダンプしようとしています。具体的に言うと、「UCS-2 LE」 公開されていない言語は 1 つだけで、それはフランス語です。何らかの理由で、通常はアクセント付きの文字が完全に間違っています。私が見つけたのは、データが間違った文字として「保存」されているように見えることです。

同僚は、テーブルにあるこのデータはおそらく正しいと考えており、データを UCS-2 LE テキスト ファイルに入れる前に、正しい文字セットまたは正しいコード ページに変換して、データを適切に表示する必要があります。

誰でも私の問題について洞察を提供できますか? ありがとうございました!

更新: 私はこれを見つけました: http://windowsitpro.com/windowsstorage/Article/ArticleID/14045/windowsstorage_14045.html - これは基本的に、私がする必要があることはできないと言っていますか? 私がやりたいことは少し違うと思いますが、それは[false-]希望です。

4

1 に答える 1

1

あなたの同僚は正しいです。データは UNICODE データ型で保存されるため、母国語の形式を維持する必要があります。

必要なのは、データを選択するときです。リクエストを実行したユーザー、つまりロケールに対して適切な照合が使用されるようにする必要があります。

SQL Server で照合順序を使用する方法については、次のオンライン ブック リファレンスを参照してください。

http://msdn.microsoft.com/en-us/library/ms144260(SQL.90).aspx

お役に立てれば。乾杯。

于 2009-03-24T19:12:00.813 に答える