解析某些文檔時,我得到字符代碼146,它實際上是一個ANSI編號。在寫入文本文件時,沒有顯示任何內容。如果我們將字符編碼爲Unicode編號8217,則字符顯示正常。ansi to unicode conversion
任何人都可以給我關於如何將ANSI編號146轉換爲C#中的Unicode 8217的建議。
參考:http://www.alanwood.net/demos/ansi.html
感謝
解析某些文檔時,我得到字符代碼146,它實際上是一個ANSI編號。在寫入文本文件時,沒有顯示任何內容。如果我們將字符編碼爲Unicode編號8217,則字符顯示正常。ansi to unicode conversion
任何人都可以給我關於如何將ANSI編號146轉換爲C#中的Unicode 8217的建議。
參考:http://www.alanwood.net/demos/ansi.html
感謝
「ANSI」 實在是用詞不當 - 有許多編碼通常被稱爲 「ANSI」。但是,如果你確定你需要的代碼頁1252,您可以使用:
Encoding encoding = Encoding.GetEncoding(1252);
using (TextReader reader = File.OpenText(filename, encoding))
{
// Read text and use it
}
或
Encoding encoding = Encoding.GetEncoding(1252);
string text = File.ReadAllText(filename, encoding);
這對讀文件 - 寫入文件是同樣的想法。基本上,當您從二進制(例如文件內容)轉換爲文本時,請使用適當的Encoding
對象。
嗨喬恩, 謝謝你的詳細信息。 實際上,我從文檔中只獲取字符代碼(146),它是一個PDF文檔,而不是文本文件。因此我需要將代碼轉換爲相應的文本。 所以,你可以給我一個關於如何將代碼說,146到8712,而不是使用TextReader類的想法。 – user438959 2011-05-31 08:43:58
@ user438959:這不太清楚你的意思。 PDF閱讀器應該照顧你的編碼。如果它應用了錯誤的編碼,它基本上太晚了 - 你很容易就已經丟失了數據。 – 2011-05-31 09:01:22
我從PDF中提取文本。字符的編碼是winansi編碼,字符代碼是146(右單引號)。如何將字符寫入只有字符代碼的文本文件(146)。 – user438959 2011-05-31 09:07:27
我的建議是閱讀Joel's "Absolute Minimum Every Software Developer Must Know About Unicode and Character Sets。在你的問題中涉及到很多,我的經驗是,如果你不瞭解這些基礎知識,你就會對付簡單的答案。大約需要15分鐘的時間閱讀。
你正在閱讀文件嗎?你可以設置編碼,當你打開文件閱讀... – tofutim 2011-05-31 07:21:01