大家好,我有这样的表格:
<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>
这段代码js:
var linkcodificato= self.location.href;
var link= decodeURIComponent(linkcodificato);
我可以解码很多字符(?|!还有很多其他字符),但不能解释重音字母......为什么?
à = %E0
修改
在我的搜索栏中,我搜索:
“你好à”
我拥有的网址是:
?q=Hello+%E0
答案 0 :(得分:0)
问题是%E0
代表á
(ANSI
)编码中的Windows-1252
字符,而utf-8
中的html
无效。
您可以通过以下方式避免此行为:
您的utf-8
文件以utf-8
编码保存。如何执行此操作取决于您的编辑器,但您应该在&#34;另存为&#34;或&#34;首选项&#34;中寻找字符编码选项。
您可以在html
文件中指定<meta charset="utf-8">
编码,例如将head
放入form
部分。
如果使用上述两个步骤仍然无效,您可以强制utf-8
以accept-charset="UTF-8"
编码方式提交数据,方法是将属性form
添加到{ {1}}标记。
通过此设置,您会发现á
字符在url
中保持原样。但是,location.href
仍会被编码,但如果您执行了上述操作,则编码现在将%C3%A0
而不是违规%E0
,并且可以很好地转换为à
当你使用decodeURIComponent
时。
每当您进行更改时,请务必刷新原始页面,然后重新提交表单。
以下是html
代码的建议开头(删除!
之前的空格):
< !DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
通过上述方法,您可以确保文档以utf-8
模式运行。