2016-09-28 3 views
1

何らかの理由でテキストをイメージとして格納するテーブルがあります。テキストをイメージデータ型に変換する

SELECT CONVERT(NVARCHAR(MAX), CONVERT(VARBINARY(MAX), column,2)) FROM table 

ここでデータをテーブルに挿入する必要があります。私は

SELECT CONVERT(IMAGE, CAST('TEST TEXT' AS VARBINARY(MAX))) 

を試みた。しかし、私はそれが「テストテキスト」

を返す必要がありますよう

は何それは䕔呓吠塅明らかに右ではありませんどの返し

SELECT CONVERT(NVARCHAR(MAX), CONVERT(VARBINARY(MAX), CONVERT(IMAGE, CAST('TEST TEXT' AS VARBINARY(MAX))),2)) 

を使用して、それをバックに変換テストするとき私はここで間違っていますか?

答えて

1

保存しようとしているテキストは、バイナリASCII文字でエンコードされています。元の文字列ではないテキスト文字列Unicodeに変換しようとしています。そのため、文字化けしたテキストが戻ってきています。

変更の前にNを追加することによりUnicode文字列にソーステキスト文字列:

SELECT CONVERT(NVARCHAR(MAX), CONVERT(VARBINARY(MAX), CONVERT(IMAGE, CAST(N'TEST TEXT' AS VARBINARY(MAX))),2))

はそれが正しいテキストを返さなければなりません。 SELECT CONVERT(VARCHAR(MAX)、(VARBINARY(MAX)、CAST(IMAGE AS 'TESTのTEXT')、)CONVERT:SQL Server 2008の

1

でこれをテストしたあなたは、このいずれかを使用することができます)

基本的に、あなたのキャラクタータイプの変換と一致しませんでした。 NVarCharとVarcharの一部を使用していた部分があります。また、最後の数字2が結果に影響を与えています。 Convert文では、コードを指定しないと、デフォルト値(0)が使用されます。だから、あなたがそれを元に戻す場合は、同じコードを使うべきです。

関連する問題