gpt4 book ai didi

使用外部 JS 文件中的 jQuery 填充下拉菜单时的 JavaScript 字符问题

转载 作者:行者123 更新时间:2023-11-28 10:34:55 26 4
gpt4 key购买 nike

当我使用 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 文件并引用它。完成此操作后,我遇到了编码问题,例如俄语字符变成了 Ð ÑςÑÑкиÐ1(俄语)。

即使对外部 js 文件的引用设置如下,此编码问题似乎仍然出现:

<script type="text/javascript" charset="UTF-8" src="externalJS.js"></script>

有没有办法强制 JavaScript 对象从外部文件加载正确的编码?

请注意,我在 iPhone Mobile Safari 浏览器上查看内容时遇到了这些问题。此外,这些页面只是 html 和 JavaScript,没有任何服务器端组件。

提前致谢,本

最佳答案

Is there anyway to force the JavaScript object to be loaded with the proper encoding from an external file?

是的,您引用的脚本字符集属性。然而,从历史上看,它并不是在所有地方都有效,最好不要依赖它。如果不支持,浏览器将始终使用主页的字符集作为脚本中的字符集。因此,只要您在主页中包含 UTF-8 字符集参数,就可以了。

如果像 Mobile Safari 这样的现代浏览器不理解它,我会感到很惊讶。

您的服务器是否可能正在提供包含错误字符集的错误 Content-Type header 的 .js 文件? JS 的未设置 mime 类型加上 Apache 中的 AddDefaultCharset 的组合可能会给您带来:

Content-Type: text/plain;charset=iso-8859-1

这可能会产生把事情搞砸的效果。

关于使用外部 JS 文件中的 jQuery 填充下拉菜单时的 JavaScript 字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1700643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com