C#: Load *.txt to RichTextBox and convert into UTF8
我想打开文本文件并将其加载到richtextbox中。到目前为止,这一切进展顺利,但现在我正努力解决一个编码问题。
所以我使用了StackOverflow页面中的getType()方法:如何找出文件的编码?C.*-它返回"system.text.unicodeencoding"。
我现在的问题是:
- 如何将unicode(我想这就是它们的原貌,尽管我没有进行双重检查)转换为utf8(可能是向后转换)?
- 我可以切换richtextbox以正确显示unicode吗?下面显示了令人尴尬的结果:
rtb.LoadFile(aFile, RichTextBoxStreamType.PlainText); 。 - 如何定义savefiledialog应该使用哪种编码?
不要让richtextbox从磁盘加载文件,而是自己加载文件,同时指定正确的编码。(顺便说一下,
1 | string myText = File.ReadAllText(myFilePath, Encoding.Unicode); |
这将为您处理转换。您得到的字符串是"正确"编码的(即.NET内部使用的格式),因此您可以将其分配给richtextbox的
关于您的第三个问题:
savefiledialog只允许您选择保存文件的路径。它不能为你保存它……
使用编码类从一个编码转换为另一个编码。
并阅读本文以获取一些关于如何将其转换并写入文件的示例。