2

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

所以我使用了这个 StackOverflow 页面中的 GetType() 方法: 如何找出文件的编码?C# - 它返回“System.Text.UnicodeEncoding”。

我现在的问题是:

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

3 回答 3

6

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

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

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


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

于 2012-04-06T09:55:56.117 回答
0

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

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

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

于 2012-04-06T09:56:30.583 回答
0

您还可以使用:richTextBox.LoadFile(filePath, RichTextBoxStreamType.UnicodePlainText);

于 2021-10-25T08:32:37.277 回答