- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
根据以下table对于ISO-8859-1标准,似乎有一个实体名称和一个实体编号与每个保留的 HTML 字符相关联。
例如,对于字符 é
:
实体名称:é
实体编号:é
类似地,对于字符>
:
实体名称:>
实体编号:>
对于给定的字符串,HttpUtility.HtmlEncode
返回一个 HTML 编码的字符串,但我不知道它是如何工作的。这就是我的意思:
Console.WriteLine(HtmlEncode("é>"));
//Outputs é>
它似乎对 é
字符使用实体编号,但对 >
字符使用实体名称。
那么 HtmlEncode 方法真的适用于 ISO-8859-1 标准吗?如果是这样,为什么它有时使用实体名称而有时使用实体编号是有原因的吗?更重要的是,我可以强制它可靠地给我实体名称吗?
编辑:谢谢你们的回答。我无法在执行搜索之前解码字符串。无需深入了解太多细节,文本存储在 SharePoint 列表中,“搜索”由 SharePoint 本身完成(使用 CAML 查询)。所以基本上,我不能。
我正在想办法将实体编号转换为名称,.NET 中是否有函数可以做到这一点?还是有其他想法?
最佳答案
方法就是这样实现的。对于某些已知字符,它使用相应的实体,而对于其他所有字符,它使用相应的十六进制值,您无法修改此行为。 System.Net.WebUtility.HtmlEncode
的实现摘录(如反射器所示):
...
if (ch <= '>')
{
switch (ch)
{
case '&':
{
output.Write("&");
continue;
}
case '\'':
{
output.Write("'");
continue;
}
case '"':
{
output.Write(""");
continue;
}
case '<':
{
output.Write("<");
continue;
}
case '>':
{
output.Write(">");
continue;
}
}
output.Write(ch);
continue;
}
if ((ch >= '\x00a0') && (ch < 'Ā'))
{
output.Write("&#");
output.Write(((int) ch).ToString(NumberFormatInfo.InvariantInfo));
output.Write(';');
}
...
这就是说您不应该在意,因为此方法将始终生成有效、安全且正确编码的 HTML。
关于C# HtmlEncode - ISO-8859-1 实体名称与数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4853920/
HttpUtility.HtmlEncode 和 Server.HTMLEncode 有什么区别? 最佳答案 看看Server.HtmlEncode vs HttpUtility.HtmlEncode
我刚刚遇到一个问题,其答案建议使用 AntiXss 库以避免跨站点脚本。听起来很有趣,阅读 msdn blog ,它似乎只提供了一个 HtmlEncode() 方法。但我已经使用了 HttpUtili
我正在自学 asp .net core。我正在浏览 getting started guide .在我的 HelloWorldController 中,我有这个方法: public string We
我有一个类库(在 C# 中)。我需要使用 HtmlEncode 方法对我的数据进行编码。这很容易通过 Web 应用程序完成。我的问题是,如何从控制台应用程序调用的类库中使用此方法? 最佳答案 Syst
我在 asp-classic 中的 utf-8 字符串上使用 Server.HtmlEncode,它可以正常工作,直到字符串中有一些重音,例如Rüstü Recber,显示为 Rüstü Recber
你什么时候打电话Microsoft.Security.Application.AntiXss.HtmlEncode ?你是在用户提交信息时执行还是在显示信息时执行? 对于名字、姓氏、城市、州、 zip
使用和不使用 Server.HtmlDecode() 有什么区别? 例如: txtLocation.Text = Server.HtmlDecode(awardShowYear.ShowLocatio
我正在尝试对要发送到网络服务进行处理的参数进行编码。我从一个带有参数的命令开始,例如: TransportProviderConfirmation/68,Akal Singh,+97254494486
我们允许用户上传图片并提供文字说明。用户可以通过 javascript 通过弹出框(实际上是 div )查看此内容。上传的文本是 javascript 函数的参数。我担心 XSS,也发现了 HTMLE
我正在尝试使用以下代码: string myString = HttpServerUtility.HtmlEncode("my link & details"); 我收到以下错误: An object
这是代码: Response.Write("asd1 X : " + HttpUtility.HtmlEncode("×")); Response.Write("asd2 X : " + HttpUt
我有一个 Winform 应用程序,我在其中检查是否有完全限定的文件名 c:\somefolder\my file name.txt存在于 XML 中。 不幸的是,XML 包含 html 编码的字符串
我正在使用 C# 和 .Net 3.5 中的桌面客户端程序与 Web 服务器进行交互。我正在使用 Fiddler 来查看 Web 浏览器发送的流量并进行模拟。可悲的是,这个服务器很旧,并且对字符集和
有没有什么方法可以在不使用 System.Web.HttpUtility.HtmlEncode 方法的情况下对某些文本进行 html 编码?我想使用 .NET 3.5 Client Profile 部
在我们的 MVC3 ASP.net 项目中,HttpUtility.HtmlEncode 方法似乎转义了太多字符。我们的网页作为 UTF-8 页面提供,但该方法仍然会转义诸如 ü 或日元字符 ¥ 之类
我不明白为什么需要 Server.HtmlEncode? MSDN 指出它用于将潜在不安全的字符编码为 HTML 编码的等效字符。 有人可以告诉我这些字符为什么不安全并要求我们使用 Server.Ht
我像这样将单元格值保存在列表中 public List Cell { get; set; } 我想对这个列表的每个值进行 htmlEncode。谁能帮我解决这个问题?? 最佳答案 Cell = Cel
我有一些 HTML 内容,我想在将其显示在我的网页中之前对其进行解析和编码。 诀窍是我只想对文本内容进行编码,而不是对 HTML 内容中明显的 HTML 标记进行编码。我怎样才能做到这一点? 例子:
我希望用户输入文本,我想将文本显示给用户并保留所有空格。我不想要任何漏洞并让用户注入(inject) html 或 javascript。使用 HttpUtility.HtmlEncode 是否足够安
我尝试使用 HttpUtility.HtmlEncode 对 HTML 特殊字符(如 '、"、 等)进行编码。但我注意到这也将法语字符(如 (é) 编码为 é),现在 é 按原样显示在我的 HTML
我是一名优秀的程序员,十分优秀!