0

状況は次のとおりです。

文字セット 186 (BALTIC_CHARSET) を使用した string1 があります。文字セット 204 (RUSSIAN_CHARSET) を使用した string2 があります。これらの文字列を Oracle データベースに保存できます。これらの文字列は、特定の文字セットに変更した場合にのみ表示されます。それは問題ありません。問題は、string2 を .text ファイルに保存して、それを表示する方法です。今、私がそれを保存すると、ナンセンスになります。

私はすべてのユニコードまたは ansi またはその他に不慣れです。vb.net を使用して必要なものを取得できますか? どうすればいいですか?ありがとう。

4

1 に答える 1

1

テキストファイル自体にはコードページがないため、表示時に選択したコードページとして表示されます(データベースの値と同じです)。

これを処理する正しい方法は、VBが内部で使用するUnicodeを使用することですが、(デフォルトでは)ファイルに表示または保存するときに現在のローカルコードページとの間で変換されます。

このファイルをUTF-8またはUCS-2として保存するには、先頭にBOM文字を追加し、次のようなものを使用してメモリから文字列データを書き出すだけです。

Dim Content() As Byte
Content = ChrW(&HFEFF) & StringVariable
FileNum = FreeFile()
Open FileName For Binary As #FileNum
Put #filenum, Content
Close #FileNum

(未テストのエアコード)

于 2012-07-26T11:32:05.623 に答える