我在我的查询字符中有这个 - sug_zehut =ז
(ז是希伯来文字母)
虽然我很清楚这是不好的做法,但我必须在查询字符串中接收它(不是我的代码..)
当我将它写入隐藏时,我将sug_zehut =%EF%BF%BD作为查询字符串的一部分,当我尝试将其放入字符串并将其置于隐藏状态时,我得到 (我发现here这两个是相同的)。
无论如何,问题是 - 如何获得我的变量的值??
(我正在使用.net版本4)
感谢。
答案 0 :(得分:2)
%EF%BF%BD是�sumbol的代码。这意味着您的服务器不知道此字符,因为您在一个编码中发送了符号并尝试将其设置为UTF-8。
尝试在每个地方设置utf-8编码(至少用于测试问题):
如果它不起作用,请告诉我你如何获得这个网址并导航它?
答案 1 :(得分:0)
这是一个将您的角色转换为HTML编码版本的小功能(ז在这种情况下)。不幸的是,在.net的大多数版本中,HtmlEncode都不会为你做这件事。
private static string UnicodeConvertChar(char input)
{
if (input > 159)
{
return "&#" + ((int)input).ToString() + ";";
}
else
{
return input.ToString();
}
}
您可以在隐藏字段中进行转换之前对其进行转换,然后当您将其恢复时,您可以使用HttpUtility.HtmlDecode简单地读取它。
这是一个dotnetfiddle,你可以玩它: https://dotnetfiddle.net/jbDY0V