Я сталкиваюсь с проблемой кодировки символов при загрузке раскрывающегося списка с помощью jQuery из внешнего файла js. Кажется, что это происходит только тогда, когда объект JavaScript находится за пределами страницы.
Например, ниже приведен объект JavaScript.
var langs = [
{value:'zh-CN', text:'中文 (简体) Chinese Simplified'},
{value:'en', text:'English'},
{value:'eo', text:'EsperAnt'},
{value:'es', text:'Español'},
{value:'ja', text:'日本語 (Japanese)'},
{value:'pt-PT', text:'Português'},
{value:'ru', text:'Русский (Russian)'},
];
Если это на моей странице с правильными метатегами <meta http-equiv="content-type" content="text/html; charset=utf-8" />
, то приведенный ниже код работает.
$(document).ready(function() {
// Fill language select
$.each(langs, function(i, j){
$('#LangSelect').append($("<option></option>").attr("value",j.value).text(j.text));
});
Но, поскольку мне нужны языки на более чем одной странице, я переместил объект langs во внешний файл js и сослался на него. После этого я сталкиваюсь с проблемами кодирования, например русские символы становятся русскими.
Эта проблема с кодировкой, похоже, все еще возникает, даже если ссылка на внешний файл js установлена, как показано ниже:
<script type="text/javascript" charset="UTF-8" src="externalJS.js"></script>
Есть ли способ принудительно загрузить объект JavaScript с правильной кодировкой из внешнего файла?
Обратите внимание, что у меня возникают эти проблемы при просмотре содержимого в браузере iPhone Mobile Safari. Кроме того, эти страницы просто HTML и JavaScript без каких-либо серверных компонентов.
Заранее спасибо,
Ben