2

テキストファイルを開いてRichTextBoxにロードしたいと思います。これは今のところうまくいっていますが、今はエンコーディングの問題に苦しんでいます。

だから私はこのStackOverflowページからGetType()メソッドを使用しました: ファイルのエンコーディングを見つける方法は?C# -「System.Text.UnicodeEncoding」を返します。

私の質問は次のとおりです。

  • UnicodeをUTF8(および場合によっては逆方向)に変換するにはどうすればよいですか(ダブルチェックはしていませんが、それが正しいと思います)。
  • Unicodeを正しく表示するようにRichTextBoxを切り替えることはできますか?以下は、厄介な結果を示しています。rtb.LoadFile(aFile, RichTextBoxStreamType.PlainText);
  • SaveFileDialogが使用するエンコーディングを定義するにはどうすればよいですか?
4

3 に答える 3

6

RichTextBox にディスクからファイルをロードさせる代わりに、正しいエンコーディングを指定して自分でロードします。(ちなみに、は " UTF-16 little-endianEncoding.Unicode "の同義語です。)

string myText = File.ReadAllText(myFilePath, Encoding.Unicode);

これにより、変換が処理されます。Text取得した文字列は「正しく」(つまり、.NET によって内部的に使用される形式で) エンコードされているため、RichTextBoxのプロパティに割り当てることができます。


3 番目の質問について:SaveFileDialogは、ユーザーがファイル名を選択できるようにする単なるツールです。ファイル名で何をする(テキストをファイルに保存する、文字列をエンコードして保存するなど) は、SaveFileDialog とは何の関係もありません。

于 2012-04-06T09:55:56.117 に答える
0

SaveFileDialog を使用すると、ファイルを保存するパスを選択できます。それはあなたのためにそれを保存しません..

Encodingクラスを使用して、エンコーディングを別のエンコーディングに変換します。

また、この記事を読んで、変換してファイルに書き込む方法の例を確認してください。

于 2012-04-06T09:56:30.583 に答える