我有一个带有unicode字符的网址
http://www.argaam.com/Common/Handlers/DownloadAttachment.aspx?referer=/portal&fileName=اعمار。 -الربعالثاني_633857794599657020.pdf& folder = \ CompanyFinancialResults \
这在FireFox以及Chrome和Safari中运行良好但是当从IE发送请求时,服务器会将我发送到错误页面。
好的,我得到了服务器收到的请求,就像这样
GET /Common/Handlers/DownloadAttachment.aspx?referer=/portal&fileName=??????%% 20 ?????????????????????????????????????????????????????????????????????????????????????????????????? \ HTTP / 1.1
GET /Common/Handlers/DownloadAttachment.aspx?referer=/portal&fileName=%D8%A7%D8%B9%D9%85%D8%A7%D8%B1.%20-%D8%A7%D9 %84%D8%B1%D8%A8%D8%B9%20%D8%A7%D9%84%D8%AB%D8%A7%D9%86%D9%8A_633857794599657020.pdf& folder = \ CompanyFinancialResults \ HTTP / 1.1
所以由于某种原因IE浏览器没有正确编码多字节字符!
任何人都知道为什么?
答案 0 :(得分:0)
看起来URL中有多字节字符,我没有想过这个,所以不确定这是否是问题的一部分? URL也看起来像是文件名,可能是那些带有这些字符的文件名不存在或文件不存在?
答案 1 :(得分:0)
尝试在Microsoft的此页面上记录注册表更改:
要解决此问题,必须添加注册表值。将名为MBCSServername的DWORD注册表值(数据值为0)添加到以下注册表项: HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ Windows \ CurrentVersion \ Internet Settings
答案 2 :(得分:0)
您的链接在放入HTML时应该是URLEncoded,而不是依赖浏览器尝试为您编码URL。 (IE的行为因客户的操作系统/语言而异,等等。)