即使我使用UTF-8編碼,並且我已將detectEncodingFromByteOrderMarks(BOM)設置爲true,StreamReader會將' - '(alt + 0150)讀爲 。任何人都可以指導我嗎?StreamReader奇怪的錯誤與
回答
該字節代碼將不會出現在UTF-8編碼的文本的額外的東西。當用utf-8編碼時,它是'\ u2013',0xe2 + 0x80 + 0x93。如果在數字小鍵盤上鍵入Alt + 0150時出現此字符,則默認系統代碼頁可能爲1252.只需將Encoding.Default傳遞給StreamReader構造函數即可。
完美 默認編碼沒有detectEncodingFromByteOrderMarks參數的作品。你們是非常感謝謝謝盧卡斯一噸 – tmjam
您需要知道用於編碼文本的編碼。這是沒有辦法的。嘗試不同的編碼,直到獲得理想的結果。
從MSDN:
的detectEncodingFromByteOrderMarks參數檢測由 編碼看的前三個字節流。如果文件以適當的字節順序標記開始,它會自動識別UTF-8,小端Unicode和大端Unicode文本 。否則,使用用戶提供的編碼 。有關更多信息,請參閱Encoding.GetPreamble 方法。
這意味着使用BOM只是可能會或可能無法正常工作,也可以很容易地重寫
由於其他用戶寫道,此問題的可能原因是您正在嘗試讀取的文件的ANSI編碼。我已經重新創建了以ANSI編碼保存文件時描述的問題。
嘗試使用此代碼:
var stream = new StreamReader(fileName, Encoding.Default);
的Encoding.Default參數是很重要的位置。這段代碼應該正確地讀取你提到的字符。
! – tmjam
- 1. 奇怪的錯誤與UIAlertView
- 2. 與CreateCompatibleDC奇怪的錯誤
- 3. 奇怪的錯誤與JSP
- 4. 奇怪的錯誤
- 5. 奇怪的錯誤
- 6. 奇怪的錯誤
- 7. 奇怪的錯誤
- 8. 奇怪的錯誤
- 9. 奇怪的錯誤
- 10. 奇怪的錯誤
- 11. 奇怪的錯誤
- 12. 與jsdom奇怪的錯誤 - Node.js的
- 13. 奇怪的編譯錯誤與Maven
- 14. Eclipse中奇怪的錯誤與Android
- 15. 奇怪的語法錯誤與x.method
- 16. 奇怪的段錯誤與unique_ptr和shared_ptr
- 17. 奇怪的錯誤與Microsoft.Jet.OLEDB.4.0
- 18. 奇怪的錯誤與計算結果
- 19. 與ObjC奇怪的(?)Xcode錯誤消息
- 20. 奇怪的錯誤與C + +類模板
- 21. fgetcsv與MySQL:奇怪的錯誤
- 22. 與stoi有關的奇怪錯誤?
- 23. 與maxCoeff奇怪的錯誤在本徵
- 24. 奇怪的段錯誤與tinyxml2
- 25. 奇怪的AJAX錯誤與IE 11
- 26. 奇怪的錯誤與NG單擊
- 27. 奇怪的JVM錯誤與ICS
- 28. 奇怪的錯誤403:有與會者
- 29. 奇怪的iOS錯誤與UITableViewCell和userInteractionEnabled
- 30. 與CodeBlocks奇怪的編譯錯誤 - c + +
你試過Unicode編碼嗎? –
是的,先生,也試過tat也 – tmjam