2012-03-30 100 views
0

我正在将数据从一个页面发送到下一个MVC2应用程序。第1页发送价格信息,第2页显示总税额。使用招,我可以看到正在从第1页正确张贴了我的数据,例如:欧元货币符号不会显示,即使其他符号可以工作

itemA_3225=Description&itemB_3225=123&itemCurrency_3225=USD&itemSymbol_3225=%24

然后,在我的控制器的邮政法,我有这样一行:

mySymbol = Request.Form["itemSymbol_" + itemID].ToString(); 

mySymbol作为"$"正确更新。

然而,当我尝试做这行欧元这是行不通的,即使一切似乎类似:

itemA_3226=Description&itemB_3226=123&itemCurrency_3226=EUR&itemSymbol_3226=%80

但在我的控制器的mySymbol变量被设置为""。有任何想法吗? $和£工作正常,但欧元和ƒ不起作用。

回答

0

请勿在欧元符号的URI中使用%80。 URI的字符集始终是UTF-8,所以您必须发送字符U+20AC或uuencoded,%E2%82%AC

希望这有助于!

+0

如何正确编码字符?我试过HttpUtility.HtmlEncode/Decode,但那仍然不能识别欧元。 – WEFX 2012-04-02 15:05:28

+1

您需要'UrlEncode',而不是'HtmlEncode'。 – 2012-04-02 15:59:45

+0

是的,我需要页面A上的UrlEncode和页面B上的UrlDecode的组合。谢谢! – WEFX 2012-04-02 16:41:36

1

根据我的经验,有90%的时间出现这样的错误,问题与使用错误的字符集进行读/写有关。