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

本文关键字:RichTextBox 转换 UTF8 加载 txt | 更新日期: 2023-09-27 18:30:08

我想打开文本文件并将它们加载到RichTextBox中。到目前为止,这一切都很顺利,但现在我正在为编码问题而挣扎。

因此,我使用了StackOverflow页面中的GetType()方法:如何找到文件的编码?C#-并返回"System.Text.UnicodeEncoding"。

我现在的问题是:

  • 如何将Unicode(我想它们就是这样,尽管我还没有仔细检查)转换为UTF8(可能向后转换)
  • 我可以切换RichTextBox以正确显示Unicode吗?以下显示了尴尬的结果:rtb.LoadFile(aFile, RichTextBoxStreamType.PlainText);
  • 如何定义SaveFileDialog应该使用哪种编码

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

不要让RichTextBox从磁盘加载文件,而是自己加载,同时指定正确的编码。(顺便说一句,Encoding.Unicode只是"UTF-16little-endian"的同义词。)

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

这将为您处理转换。您得到的字符串是"正确"编码的(即.NET内部使用的格式),因此您可以将其分配给RichTextBox的Text属性。


关于第三个问题:SaveFileDialog只是一个让用户选择文件名的工具。对文件名所做的操作与SaveFileDialog无关(比如:将一些文本保存到其中,或者对一些字符串进行编码,然后保存)。

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

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

阅读本文,了解如何将其转换并写入文件的示例。

您还可以使用:richTextBox.LoadFile(文件路径,RichTextBoxStreamType.UnincodePlainText);