2012-04-06 22 views
0

テキストファイルを開いてRichTextBoxにロードしたいとします。これまでのところうまくいっていますが、今はエンコードの問題で苦労しています。C#:RichTextBoxに* .txtをロードしてUTF8に変換する

だから私はこのStackOverflowのページからメソッドGetType()メソッドを使用: How to find out the Encoding of a File? C# - そしてそれは "System.Text.UnicodeEncoding" を返します。

私の質問は次のようになります。

  • 私はUnicodeを(おそらく後方と)UTF8に(私はダブルチェックしていないが、私は、それは彼らが何であるかだと思う)に変換するにはどうすればよいですか?
  • Unicodeを正しく表示するようにRichTextBoxを切り替えることはできますか?以下は厄介な結果を示しています:rtb.LoadFile(aFile, RichTextBoxStreamType.PlainText);
  • どのようにSaveFileDialogが使うべきエンコードを定義できますか?
+0

どのようにファイルを読んでいますか? File.ReadAllText()を試しましたか? – clearpath

答えて

4

RichTextBoxにディスクからファイルをロードする代わりに、while specifying the correct encodingをロードします。 (ちなみに、Encoding.Unicodeは「UTF-16リトルエンディアン」のためだけの同義語である。)

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

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


SaveFileDialogは、ユーザがファイル名を選択することができますちょうどツールです。何ですかにファイル名を付けてください(いくつかのテキストを保存するか、一部の文字列をエンコードして保存するなど)は、SaveFileDialogとは関係ありません。

0

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

Encodingを使用すると、エンコードから別のものに変換することができます。

そして、ファイルに変換して書き込む方法の例については、this articleを参照してください。

関連する問題