【发布时间】:2013-05-20 17:24:17
【问题描述】:
我正在尝试对 URL 中的法语字符进行编码。
url是用javascript构造的,然后我用window.open打开url。
例如,
var alt_title='Thierry Frémaux: Les confiden'
window.open('http://example.com/alt_title'=+encodeURIComponent(altCatTit));window.open(encodeURI('http://example.com/alt_title='+encodeURIComponent(altCatTit))
当 1. 执行时,我看不到新弹出窗口的 url 中编码的法语字符。
当 2. 执行时,我确实看到它们正在被编码。
您能否告诉我为什么我需要对它们进行两次编码才能使它们在新弹出窗口的 URL 中显示为已编码?
在 URL 中编码特殊字符的方法是否正确?
修正了错字的抱歉!
【问题讨论】:
-
window.open()中的变量与您分配的变量不同,并且您在分配中的值周围缺少引号。你没有收到语法错误吗? -
您在服务器脚本中看不到编码字符,因为它们在将参数传递给脚本之前会自动解码。
-
很难理解发生了什么,因为你有一些不适合的代码,而且你在第一个有语法错误。
-
如果您打算对字符串进行编码,您也不应该将
%20之类的编码字符放在字符串中——它们会被双重编码(在 2 中会被三重编码) )。 -
男人
=+是怎么回事?只需使用+!
标签: javascript utf-8 character-encoding