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应该使用哪种编码
不要让RichTextBox从磁盘加载文件,而是自己加载,同时指定正确的编码。(顺便说一句,Encoding.Unicode
只是"UTF-16little-endian"的同义词。)
string myText = File.ReadAllText(myFilePath, Encoding.Unicode);
这将为您处理转换。您得到的字符串是"正确"编码的(即.NET内部使用的格式),因此您可以将其分配给RichTextBox的Text
属性。
关于第三个问题:SaveFileDialog
只是一个让用户选择文件名的工具。对文件名所做的操作与SaveFileDialog无关(比如:将一些文本保存到其中,或者对一些字符串进行编码,然后保存)。
SaveFileDialog只允许您选择保存文件的路径。它不会为你保存它。。
使用Encoding类从一种编码转换为另一种编码。
阅读本文,了解如何将其转换并写入文件的示例。
您还可以使用:richTextBox.LoadFile(文件路径,RichTextBoxStreamType.UnincodePlainText);