Использование ISO-8859-1 в заголовке кнопки jQuery UI - PullRequest
4 голосов
/ 30 января 2012

Я изменяю существующую страницу с кодировкой ISO-8859-1 и не могу изменить ее кодировку на UTF-8.

Я использую диалоговое окно jQuery UI для отправки некоторой информации пользователю.

Все хорошо, за исключением того, что некоторые кнопки имеют акцентированные символы, как показано ниже:

buttons: [
{
    text: "SIM!",
    click: function() { //'yes' button clicked }
}, {
    text:'NÃO',
    click: function() { //'no' button clicked }
}
]

Когда я отображаю диалоговое окно, кнопка «NÃO» становится «N & Atilde; O», но браузер игнорирует html-сущность и отображает «N & Atilde; O».

Я также пытался поставить N & Atilde; O вместо NÃO, но не получилось.

Есть ли способ правильно отобразить акцентированный М на кнопке пользовательского интерфейса jQuery?


UPDATE

После борьбы с этой проблемой все утро я видел, что происходит ... 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:$("#badcms").html(),
       click: function() { //'no' button clicked }
    }
    ]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>

Ответы [ 5 ]

1 голос
/ 03 февраля 2012

Как и предлагалось в комментариях, я отвечаю на свой вопрос.


После борьбы с этой проблемой в течение всего утра я видел, что происходит ... 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:$("#badcms").html(),
       click: function() { //'no' button clicked }
    }
    ]
</script>
(...)
<div id="badcms" style="display:none">NÃO</div>
1 голос
/ 30 января 2012

Вам необходимо преобразовать (перекодировать) файл из ISO-8859-1 в UTF-8. Хороший редактор может сделать это (например, Notepad ++). Затем просто убедитесь, что кодировка объявлена ​​правильно (необходимая часть перехода на UTF-8).

0 голосов
/ 26 апреля 2013

В диалоге jQuery-UI есть решение для этого. Вместо использования атрибута 'text' используйте атрибут 'html' следующим образом:

buttons: [
    {
        html: "SIM!",
        click: function() { //'yes' button clicked }
    }, {
        html:'N&Atilde;O',
        click: function() { //'no' button clicked }
    }
]
0 голосов
/ 30 января 2012

Поскольку .text экранирует сущности в любом формате, вы можете установить начальный текст на text:'NAO', затем выбрать кнопку и обновить ее HTML;

$('.ui-dialog-buttonset').children('button:contains(NAO)').html("N&Atilde;O");

Хотя я подозреваю, что любые последующие манипуляции с кнопками обнулят это.

0 голосов
/ 30 января 2012

Почему бы не закодировать сущность?

N&#195;O
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...