2011-07-05 4 views
0

XMLをUTF-8エンコーディングで保存し、T-SQLコードでXMLを使用してデータを抽出する必要があります。SQL Server 2008:UTF-8コードの照合ページ65001

デフォルトのデータベース照合順序はSQL_Latin1_General_CP1_CI_ASです。

SQL Server 2008でUTF-8データを保存して使用できるかどうかはわかりませんが、XML列のUTF-8(65001)のコードページで照合を使用することを考えています。データをUTF-8で保存します。

SQL ServerでUTF-8データを操作する方法は誰でも知ることができますか?

+0

UTF-8でデータを格納する必要はありません。 xml列に使用されるUTF-16は完全にうまくいきます。データが追加の層(私の場合はJava)を介して外部に提供されると、常にUTF-8に変換される可能性があります。 – Tim

答えて

1

xmlデータを扱う場合は、xmlデータ型として格納します。それはあなたが持っている心配(すなわち、どのようにそれを保存するか)を処理する必要があり、作業するときにxmlに変換する作業(xpath式、xqueryなど)を自分で省くことができます。

0

NVARCHARカラムは正常に機能するはずです。

+0

UTF-8ではなくUCS-2エンコーディングでクライアントに結果を返すのはどうでしょうか? – Tim

+0

XMLを格納するためにNVARCHARを使用する場合、XMLにはUTF-16 BOMの内容が含まれているか、 'encoding =" utf-16 "'が含まれている必要があります。これを行わなければ、発生する可能性があるいくつかの問題には、SQL Serverの独自の組み込みXML解析機能が含まれています。 – binki

0

すべてのUnicode文字をxmlまたはnvarchar列に格納できます。使用する照合順序は関係ありません。少数の珍しい漢字(補足面から)は、nchars(サロゲートペア)のペアとして格納することができます。しかし、データの損失はありません。