Javascript 在jQuery UI按钮标题上使用ISO-8859-1
我正在更改使用ISO-8859-1编码的现有页面,无法将其编码更改为UTF-8 我正在使用jQueryUI对话框向用户发送一些信息 一切都很好,除了一些按钮有以下突出的字符:Javascript 在jQuery UI按钮标题上使用ISO-8859-1,javascript,jquery,jquery-ui,character-encoding,Javascript,Jquery,Jquery Ui,Character Encoding,我正在更改使用ISO-8859-1编码的现有页面,无法将其编码更改为UTF-8 我正在使用jQueryUI对话框向用户发送一些信息 一切都很好,除了一些按钮有以下突出的字符: buttons: [ { text: "SIM!", click: function() { //'yes' button clicked } }, { text:'NÃO', click: function() { //'no' button clicked } } ] 显示对话框时,“
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
显示对话框时,“NÃO”按钮变为“NÃ;O”,但浏览器忽略html实体并显示NÃ;O
我还试着把NÃ;O而不是NÃO,但不起作用
有没有办法在jQueryUI按钮上正确显示带重音的Ã
更新 在和这个问题斗争了一上午之后,我看到了发生的事情。。。CMS只将javascript文本更改为HTML实体(这是我见过的最糟糕的CMS)。我解决了用我想放在按钮上的文本创建隐藏div的问题,并使用了它,而不仅仅是放置字符串,如下所示:
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
之前:
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:$("#badcms").html(),
click: function() { //'no' button clicked }
}
]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:$("#badcms").html(),
click: function() { //'no' button clicked }
}
]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
之后:
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:$("#badcms").html(),
click: function() { //'no' button clicked }
}
]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:$("#badcms").html(),
click: function() { //'no' button clicked }
}
]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
按钮:[
{
文字:“SIM!”,
单击:函数(){/'yes'按钮已单击}
}, {
文本:$(“#badcms”).html(),
单击:函数(){/'no'按钮已单击}
}
]
(...)
NÃO
为什么不对实体进行编码
NÃO
由于
.text
以任何格式转义实体,您可以将初始文本设置为text:'NAO'
,然后获取按钮并更新其html
$('.ui-dialog-buttonset').children('button:contains(NAO)').html("NÃO");
尽管我怀疑任何后续的按钮操作都会重置此设置。您需要将文件从ISO-8859-1转换(转码)为UTF-8。一个好的编辑器可以做到这一点(例如记事本++)。然后确保正确声明了编码(这是迁移到UTF-8的一个重要部分)。正如评论中所建议的,我在回答我自己的问题
在和这个问题斗争了整整一个上午之后,我看到了发生的事情。。。CMS只将javascript文本更改为HTML实体(这是我见过的最糟糕的CMS)。我解决了用我想放在按钮上的文本创建隐藏div的问题,并使用了它,而不仅仅是放置字符串,如下所示:
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
之前:
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:$("#badcms").html(),
click: function() { //'no' button clicked }
}
]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:$("#badcms").html(),
click: function() { //'no' button clicked }
}
]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
之后:
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:$("#badcms").html(),
click: function() { //'no' button clicked }
}
]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:'NÃO',
click: function() { //'no' button clicked }
}
]
buttons: [
{
text: "SIM!",
click: function() { //'yes' button clicked }
}, {
text:$("#badcms").html(),
click: function() { //'no' button clicked }
}
]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
按钮:[
{
文字:“SIM!”,
单击:函数(){/'yes'按钮已单击}
}, {
文本:$(“#badcms”).html(),
单击:函数(){/'no'按钮已单击}
}
]
(...)
NÃO
jQuery UI对话框对此有一个解决方案。不要使用“text”属性,而是使用“html”属性,如下所示:
buttons: [
{
html: "SIM!",
click: function() { //'yes' button clicked }
}, {
html:'NÃO',
click: function() { //'no' button clicked }
}
]
我看不出NÃO和NÃOCan的区别你能提供一个屏幕截图吗?众所周知,编码问题很难跨处理编码本身的层进行沟通。对不起,我必须编辑这个问题。政府;阿蒂尔德;在这两种情况下都转换为Ã。@Alnitak I编辑了问题以使用内联代码块来显示原始标记。您不应该使用
标签
属性而不是文本
<代码>文本用于启用/禁用标签,在您的情况下,它将始终处于启用状态,因为非空字符串文字是真实的。您可以简单地看到原始标记中的标签(可能是
元素中的标签),或者更好(从维护的角度):Ã代码>