1

我有一个隐藏字段,我在其中以字符串格式存储用户输入和代码生成的值。由于字符串可能包含超链接等,因此我在将其放入隐藏字段之前使用了 HTmlEncode,并在我从隐藏字段中检索时用于解码该值。如果用户输入包含法语字符,则代码将崩溃。如何对包含链接、法语和其他文化字符的字符串进行编码。我收到以下错误

A potentially dangerous Request.Form value was detected from the client (ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder1$EmailHiddenField="...434] - [Exécuter la macro...").
4

2 回答 2

3

好吧..如果您使用的是c#,那么这是我的尝试..

将整个 HTML 文档编码为 Base64 字符串,然后使用 URLEncode。

byte[] bytesToEncode = Encoding.UTF8.GetBytes(myHTMLDocAsString);
string encodedText = Convert.ToBase64String(bytesToEncode);

接着URLEncode(encodedText)

这可以通过 HTTP 作为 POST 成功传输而不会出错!

现在,如果您需要将其存储在隐藏字段中,而不是发布,只需将其输入隐藏字段..

希望能帮助到你..

于 2013-04-12T05:03:44.603 回答
2

使用全球化标签:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="nb-no" uiCulture="no"/>

进一步遵循这个答案,您将了解这些字符串的编码解码:

从查询字符串中获取 U+fffd/65533 而不是特殊字符

于 2013-04-12T05:03:29.703 回答