我有一个 C# .net web 项目,它的全球化标签设置为:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="nb-no" uiCulture="no"/>
当这个 URL 是 Flash 应用程序时(在浏览器中手动输入 URL 时会遇到同样的问题):c_product_search.aspx?search=kjøkken(或者:c_product_search-aspx?search=kj%F8kken
两者都返回以下字符代码:
k U+006b 107
j U+006a 106
� U+fffd 65533
k U+006b 107
k U+006b 107
e U+0065 101
n U+006e 110
我对字符编码不太了解,但似乎 ø 被赋予了 unicode 替换字符,对吧?
我试图将全球化标签更改为:
<globalization requestEncoding="iso-8859-1" responseEncoding="utf-8" culture="nb-no" uiCulture="no"/>
这使得请求工作。但是,现在,我页面上的其他搜索停止工作。
我还尝试了以下类似结果:
NameValueCollection qs = HttpUtility.ParseQueryString(Request.QueryString.ToString(), Encoding.GetEncoding("iso-8859-1"));
string search = (string)qs["search"];
我应该怎么办?
亲切的问候,
尼泰克