我们正在使用他们的静态共享URL与TencentQQ实现共享功能。我们有一个经过编码的网址:" http://www.testurl.com/product/this-is-a-product-%E7%9F%AD%E8%A3%A4/id-000000"
使用此链接通过TencentQQ共享此链接时: http://share.v.t.qq.com/index.php?c=share&a=index&url=http://www.testurl.com/product/this-is-a-product-%E7%9F%AD%E8%A3%A4/id-000000&title=This%20is%20a%20test&appkey=000000000
您将在Feed上看到在普通话字符开头拆分URL。
我想在处理URL时他们正在使用decodeURIComponent,我注意到在Chrome的开发工具控制台中执行时效果相同:
我想这里的问题是 - 我在编码这个网址时做错了吗?是否有理由在普通话字符的开头拆分URL?
答案 0 :(得分:3)
您的网址未经过编码,看起来它是编码的,因为它使用非ASCII /非拉丁字符,任何其他网址作为参数的网址都需要编码,长话短说,这里是解决方案:
function urlShare(url,title,appkey){
return 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+encodeURIComponent(url)+'&title='+encodeURIComponent(title)+'&appkey='+appkey
}
只需使用URL,标题和appkey调用此函数(不知道appkey是否需要编码):
urlShare('http://www.testurl.com/product/this-is-a-product-%E7%9F%AD%E8%A3%A4','A Title','id-000000')
它将返回一个实际有效的安全网址。