C#:将* .txt加载到RichTextBox并转换为UTF8

时间:2012-04-06 09:49:46

标签: c# text encoding utf-8 richtextbox

我想打开文本文件并将它们加载到RichTextBox中。到目前为止,这一直很顺利,但现在我正在努力解决编码问题。

所以我使用了StackOverflow页面中的GetType()方法: How to find out the Encoding of a File? C# - 并返回“System.Text.UnicodeEncoding”。

我现在的问题是:

  • 我如何将Unicode(我猜它们是什么,虽然我没有经过双重检查)转换为UTF8(可能是向后)?
  • 我可以切换RichTextBox以正确显示Unicode吗?以下显示了尴尬的结果:rtb.LoadFile(aFile, RichTextBoxStreamType.PlainText);
  • 如何定义SaveFileDialog应使用哪种编码?

2 个答案:

答案 0 :(得分:5)

不要让RichTextBox从磁盘加载文件,而是自己加载while specifying the correct encoding。 (顺便说一下,Encoding.Unicode只是“ UTF-16 little-endian ”的同义词。)

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

这将为您完成转换。您获得的字符串是“正确”编码的(即以.NET内部使用的格式),因此您只需将其分配给RichTextBox的Text属性即可。


关于第三个问题:SaveFileDialog只是一个让用户选择文件名的工具。您使用文件名(例如:将一些文本保存到其中,或编码一些字符串然后保存它)与SaveFileDialog无关。

答案 1 :(得分:0)

SaveFileDialog只允许您选择保存文件的路径。它不会为你保存..

使用Encoding类将编码转换为另一种编码。

并阅读this article以获取有关如何转换并将其写入文件的示例。