假设我从服务请求中获得了一些JSON,如下所示:
{
"message": "We're unable to complete your request at this time."
}
Run Code Online (Sandbox Code Playgroud)
我不确定为什么那个抄袭被编码为那个('); 我所知道的是我想解码它.
这是一种使用jQuery的方法,它突然出现在我脑海中:
function decodeHtml(html) {
return $('<div>').html(html).text();
}
Run Code Online (Sandbox Code Playgroud)
但这似乎(非常)hacky.什么是更好的方式?有"正确"的方式吗?
是否有任何人知道如何特殊字符转换为HTML在Javascript?
例:
&(&符号)变成了&."(双引号)成为"时ENT_NOQUOTES未设置.'(单引号)'仅在ENT_QUOTES设置时才变为.<(小于)成为<.>(大于)成为>.作为测试一些代码的副作用,我编写了一个小函数来比较使用array.push方法与直接寻址(array [n] = value)的速度.令我惊讶的是,推送方法通常表现得更快,特别是在Firefox中,有时在Chrome中.只是出于好奇:任何人都有解释吗?您可以在此页面找到测试(单击"数组方法比较")
我在CMS中工作,允许用户输入内容.问题是,当他们添加符号时®,它可能无法在所有浏览器中良好显示.我想设置一个必须搜索的符号列表,然后转换为相应的html实体.例如
®=> ®
&=> &
©=> ©
™=>™
转换后,需要将其包装在<sup>标记中,从而产生以下结果:
® => <sup>®</sup>
因为特定的字体大小和填充样式是必要的:
sup { font-size: 0.6em; padding-top: 0.2em; }
JavaScript会是这样的吗?
var regs = document.querySelectorAll('®');
for ( var i = 0, l = imgs.length; i < l; ++i ) {
var [?] = regs[i];
var [?] = document.createElement('sup');
img.parentNode.insertBefore([?]);
div.appendChild([?]);
}
Run Code Online (Sandbox Code Playgroud)
"[?]"表示有些东西我不确定.
额外细节:
是否有使用JavaScript或ES6 编码或解码HTML实体的本机方法?例如,<将被编码为<.有像html-entitiesNode.js这样的库,但感觉应该有一些内置于JavaScript中的东西已经处理了这个常见的需求.
这是示例代码(http://jsfiddle.net/epsSZ/1/):
HTML:
<form enctype="multipart/form-data" action="/echo/html" method="post" name="fileinfo" accept-charset="windows-1251">
<label>Label:</label>
<input type="text" name="label" size="12" maxlength="32" value="får løbende" /><br />
<input type="submit" value="Send standart">
</form>
<button onclick="sendForm()">Send ajax!</button>
Run Code Online (Sandbox Code Playgroud)
JS:
window.sendForm = function() {
var oOutput = document.getElementById("output"),
oData = new FormData(document.forms.namedItem("fileinfo"));
var oReq = new XMLHttpRequest();
oReq.open("POST", "/echo/html", true);
oReq.send(oData);
}
Run Code Online (Sandbox Code Playgroud)
当我通过标准格式提交提交这种旧方式时,请求有效负载如下所示:
------WebKitFormBoundary2890GbzEKCmB08rz
Content-Disposition: form-data; name="label"
får løbende
Run Code Online (Sandbox Code Playgroud)
但是当我提交这种AJAX方式时,它看起来有点不同:
------WebKitFormBoundaryPO2mPRFKj3zsKVM5
Content-Disposition: form-data; name="label"
får løbende
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,在前一种情况下有一些字符被字符实体替换,但是在使用的情况下FormData有普通的字符串,这当然很好,因为它是utf-8,但是有没有可能使它表现得像标准表格提交?
javascript ajax form-data character-encoding xmlhttprequest-level2
我有一个.NET MVC页面,其中包含每个都有<%: %>编码描述的项目列表
rel.我希望能够搜索rel包含我的搜索查询的所有项目.
其中一个字段具有htmlentities的值 rel='Décoration'
我在搜索框中输入"Décoration",让jQuery搜索具有'rel'属性的所有元素,其中包含(indexOf!= -1)该值:
没有结果!
为什么?因为Décoration != Décoration.
比较这两者的最佳解决方案是什么?(必须为所有特殊重音字符工作,而不仅仅是é)
PS(我尝试了逃避/ unescape双方,也尝试将其附加到div然后将其作为文本阅读,这取代了危险的东西,但不替换é(它没有必要因为它在utf-8无论如何))
在我的MVC 3应用程序中,我有几个带有消息字符串的resx文件,例如:"Editer groupe détails".所有这些都用于窗口标题或确认/警报消息.因此,为了能够在我的各种.js文件中使用它们,我在我的母版页中创建了一个名为localizedRessources的Javascript对象.问题是字符串在此对象中被更改,例如,上面提到的字符串变为"Editer groupe détails".
我有什么选择?是否有一个特殊的函数告诉JS不要编码这些?有没有办法直接使用我的.js文件中的字符串?(顺便说一句,这在某些情况下有效,但我宁愿在我的cshtml文件中没有太多的js代码).
我为所有页面都<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">添加了标签<head>,所以我很好.任何建议都是受欢迎的.
我有这个货币清单(来自https://openexchangerates.org)
{"AED":3.6729,"AFN":57.82755,"ALL":103.465001,"AMD":414.905,"ANG":1.787,"AOA":97.659999,"ARS":8.131418,"AUD":1.065732,"AWG":1.79,"AZN":0.7839,"BAM":1.445344,"BBD":2,"BDT":77.618221,"BGN":1.44457,"BHD":0.376997,"BIF":1553.3484,"BMD":1,"BND":1.25077,"BOB":6.90997,"BRL":2.2253,"BSD":1,"BTC":0.0016610606,"BTN":60.00055,"BWP":8.865137,"BYR":10173.333333,"BZD":1.99474,"CAD":1.087393,"CDF":926.513333,"CHF":0.899613,"CLF":0.0232,"CLP":556.539996,"CNY":6.210708,"COP":1880.283333,"CRC":556.712998,"CUP":0.9999,"CVE":81.0433,"CZK":20.26093,"DJF":178.380299,"DKK":5.507907,"DOP":43.27396,"DZD":79.3989,"EEK":11.68855,"EGP":7.150895,"ERN":14.952575,"ETB":19.57954,"EUR":0.738639,"FJD":1.825871,"FKP":0.589387,"GBP":0.589387,"GEL":1.76713,"GHS":3.09659,"GIP":0.589387,"GMD":39.6,"GNF":6961.666667,"GTQ":7.81589,"GYD":204.983752,"HKD":7.751421,"HNL":20.82528,"HRK":5.59851,"HTG":45.02112,"HUF":227.0625,"IDR":11812.583333,"ILS":3.458559,"INR":60.06054,"IQD":1177.766717,"IRR":25566,"ISK":114.098,"JEP":0.589387,"JMD":111.226,"JOD":0.70829,"JPY":101.8811,"KES":87.971741,"KGS":51.94185,"KHR":4041.333333,"KMF":363.47686,"KPW":900,"KRW":1019.49,"KWD":0.282206,"KYD":0.826662,"KZT":183.533001,"LAK":8052.216667,"LBP":1511.808333,"LKR":130.250001,"LRD":89.001533,"LSL":10.70319,"LTL":2.5504,"LVL":0.518188,"LYD":1.2312,"MAD":8.27075,"MDL":13.90944,"MGA":2410.6,"MKD":45.37356,"MMK":970.664,"MNT":1823.17334,"MOP":7.98312,"MRO":290.925,"MTL":0.683738,"MUR":30.34428,"MVR":15.45622,"MWK":394.397,"MXN":13.03642,"MYR":3.2241,"MZN":31.50475,"NAD":10.70799,"NGN":163.182999,"NIO":25.87152,"NOK":5.997004,"NPR":96.1525,"NZD":1.152707,"OMR":0.384962,"PAB":1,"PEN":2.7912,"PGK":2.448173,"PHP":43.90592,"PKR":98.54584,"PLN":3.057794,"PYG":4412.258268,"QAR":3.64089,"RON":3.24691,"RSD":85.24262,"RUB":34.58522,"RWF":682.30402,"SAR":3.75081,"SBD":7.2208,"SCR":12.25984,"SDG":5.694417,"SEK":6.645576,"SGD":1.25099,"SHP":0.589387,"SLL":4335,"SOS":936.00202,"SRD":3.308567,"STD":18107.5,"SVC":8.74892,"SYP":149.324999,"SZL":10.73045,"THB":32.35748,"TJS":4.923975,"TMT":2.85,"TND":1.66316,"TOP":1.854405,"TRY":2.135726,"TTD":6.43465,"TWD":30.02066,"TZS":1685.116667,"UAH":11.8597,"UGX":2569.95,"USD":1,"UYU":22.98366,"UZS":2305.953311,"VEF":6.292275,"VND":21206,"VUV":94.252501,"WST":2.298934,"XAF":484.799008,"XAG":0.05081723,"XAU":0.00078076,"XCD":2.70158,"XDR":0.649354,"XOF":485.16402,"XPF":88.20458,"YER":214.986999,"ZAR":10.71995,"ZMK":5252.024745,"ZMW":6.284713,"ZWL":322.355006}
Run Code Online (Sandbox Code Playgroud)
并知道我想为每种货币添加正确的货币符号和货币名称(使用本地语言).
有没有人知道这样的货币符号列表
$';€';£';我不确定,每种货币都存在"HTML编码(数字)"的标志吗?
(通常)是否可以将本机货币名称存储在普通的JS对象中?
提前致谢.
我正在尝试在 html 中对德语字符进行编码。我只想使用特殊字符代码。对于变音符号,我尝试同时使用Ü和Ü,但两者都没有正确渲染。我究竟做错了什么?谢谢。
这是针对 Squarespace 网站的,我将 Javascript 插入到他们的代码注入页面的页脚中。我正在使用 Javascript 在页面上写一个德语单词。我的代码的相关部分如下所示。问题是,这只是在页面上呈现“& U uml;ber”(我添加的空格,因为变音符号在没有它的情况下可以在 Stack Overflow 上正确呈现),而不是带有变音符号的 Uber。谢谢!
var strings = {
'About': {
'de': 'Über'
},
Run Code Online (Sandbox Code Playgroud)