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表示是'•' - 或者我错过了什么? –