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

标签 c# text encoding utf-8 richtextbox

我想打开文本文件并将它们加载到 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 从磁盘加载文件,而是自己加载,while specifying the correct encoding 。 (顺便说一下,Encoding.Unicode 只是“UTF-16 小尾数”的同义词。)

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

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

<小时/>

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

关于C#:加载 *.txt 到 RichTextBox 并转换为 UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10041826/

相关文章:

c# - 如何在 Visual C# 2010 Express 中切换调试和发布?

c# - Winform DatagridView 数值列排序

python - 为什么Python中的字符串在列表内部和外部显示不同?

c - C中的编码指令

python - 在 Python 中,如何替换字符串中的所有非 UTF-8 字符?

c# - 如何在 XAML C# 的动态组合框中仅显示字典的值部分?

c# - 为什么在这种情况下需要绑定(bind)

css - 图像鼠标悬停上的文字?

javascript - 查找换行

c++ - 写入超过1GB的.txt文件时的奇怪行为