2011-09-14 5 views
0

私の問題は、誤って正しい照合順序を選択すると、ペルシア語のデータが疑問符として保存されていることです。SQL Server:疑問符文字として保存されたデータを取得しますか?

このデータが必要です。このデータを取得してペルシア語の言語文字に変換する方法はありますか?ペルシャ語の言語文字は、アラビア語や日本語のようにUTF形式で保存する必要があります。代わりの

INSERT dbo.table(col) SELECT 'Persian characters'; 

INSERT dbo.table(col) SELECT N'Persian characters'; 
-----------------------------^ this N is crucially important! 

は、その後、私はあなたのデータがなくなって怖いあなたはこのような何かをしたので、データは疑問符として保存されている場合

+1

あなたのデータがどのように乱れているかによって異なります。あなたは16進ダンプルーズのようなものを見せてもらえますか? (例: 'SELECT CAST(column AS VARBINARY(8))') – NullUserException

+0

これが本番データの場合、プロダクションにプッシュする前に挿入ステートメントをテストしましたか? –

答えて

4

。ただし、出力に疑問符が表示されている場合は、そうではない可能性があります。疑問符はどこにありますか?

1

このデータベースに接続し、データを取得し、格納されている実際のバイト数を確認することをお勧めします。それらが正しいバイトであれば、データをサルベージすることができます。バイトがすべて同じであれば(\x53の繰り返しの文字列で、\x53が疑問符を表す場合、情報は失われます)。

+0

残念ながら、疑問符はテーブルにあります:( このデータの実際のバイト数はどのように表示されますか? – Tamoochin

+0

Cast(VarBinary(8)としての列):Pythonでは次のようなことができます: '[hex(ord(c) ))for c 'string'] 'でも、他の答えと同様に、間違って保存されていれば、それはなくなるはずです:( –

+0

@Tamoochinどうすれば"疑問符はテーブルにある "ことを確認していますか?どのようなクエリですか? –

関連する問題