我知道欧元货币符号(€)按€HTML 编码,但System.Web.HttpUtility.HtmlEncode("€")根本不编码.有谁知道那是为什么?
我正在尝试将匕首'†'符号写入HTML页面,该页面将转换为PDF文档,但这在PDF上显示为"â€"
我知道我需要使用此代码的HTML代码,即†.
我已成功完成了'€',但在这些情况下,我已将代码直接写入HTML.在这种情况下,我正在从XML文件中读取符号.当我检查包含符号的变量的值时,它显示为'†'.
我应该注意到我已经尝试从XML文件中读取符号和代码,如下所示:
<fund id="777" countryid="N0" append="†" />
Run Code Online (Sandbox Code Playgroud)
和
<fund id="777" countryid="N0" append="†" />
Run Code Online (Sandbox Code Playgroud)
但两者都作为符号存储在变量中,当我将它们写入页面时,两者都呈现为"â€".另外,我尝试过以下方法:
string code = "†";
string symbol = "†";
string htmlEncodedCode = HttpUtility.HtmlEncode(code);
string htmlEncodedSymbol = HttpUtility.HtmlEncode(symbol);
tc.Text = fund.Name + code + " " + symbol + " " +
htmlEncodedCode + " " + htmlEncodedSymbol;
Run Code Online (Sandbox Code Playgroud)
但只有第一部作品.它在文件中显示为:
FundName† †† â€
Run Code Online (Sandbox Code Playgroud)
有人可以建议我如何让这个工作?
更新:
@James Curran的回答是正确的.为了清楚起见,我不得不将XML更改为:
<fund id="777" countryid="N0" append="&dagger;" />
Run Code Online (Sandbox Code Playgroud)
在我的C#中:
tc.Text = fund.Name + append;
Run Code Online (Sandbox Code Playgroud) 我发现这令人惊讶,而且很烦人.
例:
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 编码块的 xml 输出。
这是我的树枝片段:
<rawXml>
<message>
{% autoescape 'html' %}
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
{% endautoescape %}
</message>
</rawXml>
Run Code Online (Sandbox Code Playgroud)
在渲染时,我希望以这种方式对消息内容进行 html 编码:
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
Run Code Online (Sandbox Code Playgroud)
但我得到了完整的原始 XML 响应:
<rawXml>
<message>
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
</message>
</rawXml>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
在 ColdFusion 中使用 EncodeForHTML 时,换行符 (\n) 和回车符 (\r) 会转换为哪些字符?我已经尝试了所有我能想到的(或在网上找到的),但在我的 REReplace 语句中找不到我需要使用的东西,以便在编码后转换为 break (br) 标签(我需要这样做以进行显示)。
我想做的是类似的事情
#REReplace(EncodeForHTML(myVar), "html encoded newline etc chars", "<br />", "all")#
Run Code Online (Sandbox Code Playgroud)
但是,因为我无法弄清楚换行符和回车符被转换为唯一的方法,我可以让它在 EncodeForHTML 之前和之后执行 REReplace,这似乎不是很明智或有效。例如:
#REReplace(EncodeForHTML(REReplace(myVar, "\r\n|\n\r|\n|\r", "<br />", "all")), "<br &##x2f;>", "<br />", "all")#
Run Code Online (Sandbox Code Playgroud)
我正在使用 CF 10。
在MVC 2到Html.Encode()字符串中是否存在一些神奇的现有代码并允许某些html标记,如段落标记和中断?(从Linq到SQL数据库字段)
一个可怕的代码示例来实现这个效果:
Html.Encode(Model.fieldName).Replace("<br />", "<br />")
Run Code Online (Sandbox Code Playgroud)
真正好的是重载一些东西并传递给一个充满允许的html标签的数组(或对象).
我正在建立一个网站,我已将其内容类型设置为使用charset UTF-8.我也使用HTML编码的特殊字符,即:而不是á我有á.
现在我想知道(仍在建设网站)是否真的需要做这两件事.寻找答案我发现了这个:
http://www.w3.org/International/questions/qa-escapes.en.php
它说我不会对任何特殊字符使用HTML编码,但是>,<和&.但原因是逃避
可以使阅读和维护源代码变得困难,并且还可以显着增加文件大小.
我认为这是真实但非常糟糕的论点.使用转义和特殊字符真的是相同的东西吗?
嗨我正在尝试将一些文本与数据库中的文本进行比较..在数据库中,当我将数据库文本与我的字符串进行比较时,任何带有重音的文本都会像html一样编码(即.é)因为我的字符串只显示é..当我使用php函数htmlentities对字符串进行编码时,é变成了we怪异的?使用htmlspecialchars根本不编码é..
您如何建议我将é与é以及所有其他重音字符进行比较?
我希望能够将任何字符串传递给JQuery UI中的按钮文本.
假设我有这个字符串:
Ajouter L'amie a la liste"amies"
实际传递此文本而不会导致大量JavaScript错误的唯一方法是对其进行HTML编码.
registerhtml.dialog({
modal: true,
title: 'My Dialog Title',
resizable: false,
buttons: [
{
text: 'Ajouter L'amie a la liste "amies"',
click: function(){
// Do something important
$(this).dialog('close');
}
},
{
text: 'Cancel',
click: function() {
$(this).dialog('close');
}
}
]
});
Run Code Online (Sandbox Code Playgroud)
但我没有在按钮中获得任何人类可读文本.只有相同的编码文本.
有没有快速解决此问题的方法?也许我在按钮对象中缺少一个选项.
或者我应该戴上手套,打电话给护士并在JQuery-ui.js文件中开始手术?