【发布时间】:2009-10-27 17:16:58
【问题描述】:
问题的简短版本: 所以基本上我的问题是:如何将 javascript 设置为使用 UTF-8 以便支持 å ä ö,以便我的 javascript 可以将正确的值添加到下拉列表选项中?
更长的解释: 我使用 javascript 在我的主页上的下拉列表中填写“选项”。 下拉列表是一种调用 php 脚本的形式,该脚本查询 mysql 数据库。
问题是,我在我的 mysql 数据库中使用了特殊字符,例如 å ä ö。 当我像这样查询mysql数据库时:
SELECT * FROM database WHERE city = $city
它没有找到任何东西。
这是因为 $city 包含由 javascript 设置的特殊字符。 但是如果在没有 javascript 的情况下设置 $city 变量,例如在我的 html 文档中使用
option value=åäö
那么它就会起作用。这意味着 javascript 是问题所在,它将特殊字符设置为其他字符,这使得查询找不到任何东西。
填充我的下拉列表的javascript:
if(document.nav_form_main.nav_city_list.value == '4'){
removeAllOptions(document.nav_form_main.nav_city_list);
addOption(document.nav_form_main.nav_city_list, "Göteborg", "Göteborg", "");
addOption(document.nav_form_main.nav_city_list, "goteborg_closeby", "Angränsande områden", "");
addOption(document.nav_form_main.nav_city_list, "1", "Hela Sverige", "");
addOption(document.nav_form_main.nav_city_list, "other_area", "-- Välj område på nytt --", "");
}
function removeAllOptions(selectbox)
{
var i;
for(i=selectbox.options.length-1;i>=0;i--)
{
//selectbox.options.remove(i);
selectbox.remove(i);
}
}
function addOption(selectbox, value, text )
{
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
}
我的 HTML 主要文档使用:ISO 8859-1
当回显“ÅÄÖ”时,它可以在我的 PHP 代码中使用。 但是,当从 JAVASCRIPT 中呼应变量时,ÅÄÖ 会被奇怪的符号取代
【问题讨论】:
-
问题很可能在于您如何从 javascript 传输到服务器。使用萤火虫可以显示您在请求中发送到服务器的内容吗?它应该是什么?
-
我也是这么认为的,但是我已经将.js文件保存为utf-8格式...服务器的格式都是正确的,但是无论我做什么,我都无法将js文件保存到采用相同的格式...当我写特殊字符时,从 js 文件转向其他内容。我没有萤火虫。
-
向我们展示填充下拉列表的代码
-
服务器实际上是否以 UTF-8 格式提供文件?将其保存为 UTF-8 是必不可少的,但正确地提供它也是如此。如果您的服务器将其作为 ISO 8859-1 之类的其他内容提供服务,则浏览器将无法正确读取内容。
-
如何设置 wampserver 以正确服务?
标签: php javascript html