要用javascript解码url中的重音字母?

要用javascript解码url中的重音字母?,javascript,html,urldecode,Javascript,Html,Urldecode,大家好,我有这个表格: <form action='file:///C:/Users/amministratore/Desktop/google_cse/ricerca.html' method="get" target='_blank' id='cse-search-box'> <input type='text' name='q' size='35' /> <input type="submit" name="sa" va

大家好,我有这个表格:

<form action='file:///C:/Users/amministratore/Desktop/google_cse/ricerca.html' method="get" target='_blank' id='cse-search-box'>
    <input type='text' name='q' size='35' />            
    <input type="submit" name="sa" value="Search" />
</form>
我能解码许多字符(?|!和许多其他字符),但不能解码重音字母。。。为什么?

à = %E0
编辑

在我的搜索栏中,我搜索:

“你好”

我拥有的url是:

?q=Hello+%E0

问题在于
%E0
表示
ANSI
Windows-1252
)编码中的
字符,而在
utf-8
中无效

您可以通过确保:

  • 您的
    html
    文件保存在
    utf-8
    编码中。如何做到这一点,取决于您的编辑器,但您应该在“另存为”或“首选项”中查找字符编码选项

  • 您可以在
    html
    文件本身中指定
    utf-8
    编码,例如,将
    放入
    头部
    部分

  • 如果上述两个步骤仍然不起作用,您可以通过在
    表单
    标记中添加属性
    accept charset=“utf-8”
    来强制
    表单
    utf-8
    编码方式提交数据

通过这种设置,您会发现
字符保持在
url
中的状态。但是,
location.href
仍将被编码,但是如果您执行了上述操作,编码现在将具有
%C3%A0
,而不是有问题的
%E0
,当您使用
解码组件时,这将很好地转换为
a

无论何时进行更改,请确保刷新原始页面并重新提交表单

以下是您的
html
代码的建议开头(请删除
前面的空格):

<!DOCTYPE html>

通过以上操作,您可以确保文档在
utf-8
模式下运行。

url
中允许使用重音字母。或者你的意思是你有一个
url
,里面有%E0?您能更具体地介绍一下您的示例吗?@trincot请参见编辑:)您也做了第一步吗?也许我必须在“输入”表单中添加一些内容?请确保刷新页面,然后再次提交。如果它仍然将
%E0
放在
url
中,请尝试我在回答中添加的第三个操作:向
表单
标记添加属性。始终刷新页面以测试任何更改,然后再次提交。现在使用3°步骤可以正常工作,但是如果我警告页面“self.location.href”的url不是utf-8编码,为什么?有办法解决吗?如果您在
警报中看到的编码仍然具有
%E0
,则表示您的
html
没有以
utf-8
的形式运行。请完整查看
html
文档的开头,以确保它符合
utf-8
的规则。请看我的扩展答案。完成后,警报应显示
%C3%A0
,将替换该组件。
?q=Hello+%E0
< !DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>