Asp.net 从查询字符串中获取非英语字符
我的问题串中有这个-sug_zehut=זAsp.net 从查询字符串中获取非英语字符,asp.net,Asp.net,我的问题串中有这个-sug_zehut=ז (ז是希伯来字母) 虽然我很清楚这是一种不好的做法,但我必须在查询字符串(不是我的代码)中这样接收它 当我将它写入一个隐藏的时,我得到sug_zehut=%EF%BF%BD作为querystring的一部分,当我尝试将它放入字符串并将其放入一个隐藏的时,我得到� (我发现那两个是一样的) 无论如何,问题是-我如何得到变量的值 (我正在使用.net版本4) 谢谢。%EF%BF%BD是的代码� 桑博尔。这意味着您的服务器不知道这个字符,因为您在一个编码中发
(ז是希伯来字母) 虽然我很清楚这是一种不好的做法,但我必须在查询字符串(不是我的代码)中这样接收它 当我将它写入一个隐藏的时,我得到sug_zehut=%EF%BF%BD作为querystring的一部分,当我尝试将它放入字符串并将其放入一个隐藏的时,我得到� (我发现那两个是一样的) 无论如何,问题是-我如何得到变量的值 (我正在使用.net版本4)
谢谢。%EF%BF%BD是的代码� 桑博尔。这意味着您的服务器不知道这个字符,因为您在一个编码中发送了符号,并尝试将其作为UTF-8 尝试在每个位置设置utf-8编码(至少用于测试问题):
如果不起作用,请告诉我如何获取此url并在其上导航?这里有一个小函数,用于将您的字符转换为HTML编码版本(在本例中为ז;)。不幸的是,在大多数.net版本中,HtmlEncode都不能为您做到这一点
private static string UnicodeConvertChar(char input)
{
if (input > 159)
{
return "&#" + ((int)input).ToString() + ";";
}
else
{
return input.ToString();
}
}
您可以在将其设置到隐藏字段之前对其进行转换,然后当您将其取回时,只需使用HttpUtility.HtmlDecode读取即可
这里有一个dotnetfiddle供您使用:
这可能会帮助你:“当我把它写到一个隐藏的地方时”-你真的应该发布一些代码。您是否在JavaScript中的Unicode和UTF-8之间工作?有内置的方法来处理这个
encodeURIComponent
,但它取决于从何处到何处。如果你想要一个答案,发布一段代码来重现这个问题。它看起来也像,因为OP谈论的是隐藏字段,我想浏览器也需要设置为UTF-8编码,对吗?