要用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>