簡體   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