2013-04-04 154 views
1

我遇到了编码问题,我不确定如何处理。我们有一个我们给出的链接(电子邮件和其他方式),其中包含非ASCII字符(特别是æ,ø,å等)。问题是,根据用户打开哪个浏览器链接,我们收到的查询字符串编码方式不同。在经典ASP中检测查询字符串编码

在大多数浏览器它的编码为UTF-8这样的:
%C3%A5 = å

然而,在Internet Explorer中它的编码像这样的ISO-8859:
%E5 = å(或者它只是被作为å根本没有查询字符串编码)。

的问题是,如果我在Chrome阅读查询字符串,我得到Ã¥,而不是å,而在IE中我得到å,所以我需要要么确保服务器考虑到手头的编码,或在一些方法客户端总是以特定的编码发送,如前所述,问题在于我无法控制链接的使用位置。

任何帮助,将不胜感激。

+0

正在改变字符字符串/ URL ASCII字符不是一种选择? – Dave 2013-04-04 11:19:12

+2

它们是否在源代码的链接中编码?链接应该是'' – Esailija 2013-04-04 11:19:14

+0

@DaveRook这是最后的选择,因为问题是我们想发送名称(用户可以识别的名称)而不是实例ID(它总是一个与用户无关的号码)。这些链接在我们自己的页面上显示时可以正常工作(因为我们可以控制字符集),但是当通过Skype /电子邮件发送时,链接无法正常工作。目前我们似乎必须将其更改为ID。 – Alxandr 2013-04-04 11:52:08

回答

0

尝试将此嵌入到您的asp的顶部。

Response.ContentType = "text/html" 
Response.AddHeader "Content-Type", "text/html;charset=UTF-8" 
Response.CodePage = 65001 
Response.CharSet = "UTF-8" 

应该迫使所有浏览器使用UTF-8

+0

对于后续的请求,是的,但我们正在讨论可能在邮件或其他地方完全(不在浏览器中)点击的链接。换句话说,浏览器在传输数据之前没有办法获取这些标题。 – Alxandr 2013-05-01 01:19:22