lep*_*pie 4 .net unicode html-encode html-entities
我发现这令人惊讶,而且很烦人.
例:
Decode(”) => ”
Encode(”) => ”
Run Code Online (Sandbox Code Playgroud)
相关课程:
.NET 4: System.Net.WebUtility
.NET 3.5: System.Web.HttpUtility
Run Code Online (Sandbox Code Playgroud)
我可以理解一个网页可以是Unicode,但我的情况是输出不能是UTF8.
有什么东西(也许是一个HtmlWriter类)可以做到这一点,而我不必重新发明轮子?
替代方案:
string HtmlUnicodeEncode(string input)
{
var sb = new StringBuilder();
foreach (var c in input)
{
if (c > 127)
{
sb.AppendFormat("&#x{0:X4};", (int)c);
}
else
{
sb.Append(c);
}
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
生成同构HTML编解码器对是不可能的.考虑:
HtmlDecode("”””””") -> ”””””
Run Code Online (Sandbox Code Playgroud)
你怎么回到”””””原来的字符串?
HtmlEncode必须选择一种编码”,它是”最短,最可读的选择.只要您使用Unicode,这几乎肯定是最佳选择.
如果你不这样做,那就是另一个论点...... ”它的优点是它的可读性稍高”,但它只适用于HTML(而不是XML),你仍然需要回到所有Unicode字符的字符引用上.没有内置的实体名称,所以它不太一致.对于字符引用编码器,XmlTextWriter使用ASCII编码创建并调用writeString它.
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |