繁体   English   中英

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

[英]C#: Load *.txt to RichTextBox and convert into UTF8

我想打开文本文件并将它们加载到 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 应该使用哪种编码?

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

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

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


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

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

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

并阅读这篇文章,了解有关如何将其转换并写入文件的一些示例。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM