現在、サードパーティのアプリケーションによって挿入されたデータベース (Oracle 11) から情報を読み取る C# サービスがあります。
サードパーティ アプリケーションは XML からコードを生成し、情報を Unicode で保存しています。
C# アプリケーションは、次のメソッドを使用してテキストを読み取ります。
public static String GetUnicodeString(Byte[] bytes)
{
return UnicodeEncoding.Unicode.GetString(bytes, 0, bytes.Length);
}
データベース内のテキストには、各文字の間に 16 進数の 00 があります。例:
文字列を考慮する: Test
UNICODE 以外の 16 進値: 54 65 73 74
DB の UNICODE Hex 値: 54 00 65 00 73 00 74 00
文字列全体をループして 16 進数の 00 を追加すると問題なく動作しますが、最も効率的な方法とは言えず、見栄えも悪くなります。
文字列をサードパーティ アプリによって現在生成されている形式 (文字間に 16 進数の 00 を含む) に変換するにはどうすればよいですか?
以下は、データベース (blob 列) で文字列がどのようにレンダリングされるかの例です。