5
A
回答
2
HtmlDecode用於將Html編碼的字符串轉換爲可讀的字符串格式。也許HtmlEncode
可能是你真正想要的。
5
這裏的問題不是HTML解碼,而是文本被編碼爲一個字符集(例如,windows-1252),然後再次編碼爲第二個(UTF-8)。
在UTF-8中,•
被解碼爲E2 80 A2
。當使用windows-1252編碼讀取這個字節序列時,E2 80 A2
編碼爲•
。 (再次保存爲UTF-8 •
變得C3 A2 E2 82 AC C2 A2 20 54 65 73 74
。)
如果該文件是一個窗口1252編碼的文件,該文件可以簡單地與正確的編碼讀取(例如,作爲參數傳遞給一個StreamReader構造函數。) :
new StreamReader(..., Encoding.GetEncoding("windows-1252"));
如果文件是用不正確的編碼保存的,則編碼在某些情況下可以顛倒。例如,對於你的問題的字符串序列,你可以寫:
string s = "•"; // the string sequence that is not properly encoded
var b = Encoding.GetEncoding("windows-1252").GetBytes(s); // b = `E2 80 A2`
string c = Encoding.UTF8.GetString(b); // c = `•`
注意,很多常見的非打印字符的範圍是U+2000
到U+2044
(Reference),如「智能引號」,子彈和破折號。因此,序列â€?
(其中?
是任何字符)通常將表示這種類型的編碼錯誤。這使得這種類型的錯誤將被更廣泛地糾正:
static string CorrectText(string input)
{
var winencoding = Encoding.GetEncoding("windows-1252");
return Regex.Replace(input, "â€.",
m => Encoding.UTF8.GetString(winencoding.GetBytes(m.Value)));
}
調用以這種方式畸形文本此功能將糾正一些(但不是全部)的錯誤。例如CorrectText("•Testâ€「or“")
將返回預期的•Test–or「
。
相關問題
- 1. 解碼HTML特殊字符
- 2. 解碼特殊字符
- 3. 解碼特殊字符「ì」
- 4. Javascript解碼特殊字符
- 5. 在asp.net 4.0中解碼 - 特殊字符
- 6. 如何編碼和解碼特殊字符在C#
- 7. C代碼中的特殊字符
- 8. C#FtpWebRequest - 密碼中的特殊字符「§」
- 9. 解析在C#中的特殊字符的字符串
- 10. C++特殊字符
- 11. URL解碼特殊字符 - AAO
- 12. html實體/特殊字符解碼
- 13. php特殊字符不解碼
- 14. Postgres的 - 解碼特殊字符
- 15. HttpUtility.ParseQueryString無需解碼特殊字符
- 16. db.entity.find無法解碼特殊字符值
- 17. HTML實體解碼爲特殊字符
- 18. 如何解碼目標中的特殊字符c
- 19. URL編碼和解碼特殊字符在Java中
- 20. c#xml特殊字符編碼
- 21. 特殊字符編碼C#和Ironpython
- 22. C++編碼(特殊字符Ø,é...)
- 23. 特殊字符轉向HTML代碼C#
- 24. 在xml中編碼特殊字符
- 25. 編碼特殊字符在Java中
- 26. 在mySQL中編碼特殊字符
- 27. 在javascript/python中編碼特殊字符
- 28. ElasticSearch解析特殊字符
- 29. 解析GOOGLETRANSLATE特殊字符
- 30. BeautifulSoup解析特殊字符
我認爲OP想要看'''而不是'' – Musa
啊,是的..它說*字符*不是字符。 – pcnThird
雖然''翻譯成''''?項目符號的html表示是'•' - 或者我錯過了什麼? –