我有一个隐藏字段,我在其中存储以字符串格式存储用户输入和代码生成的值。由于字符串可能包含超链接等我在将其放入隐藏字段之前使用HTmlEncode并用于在我从隐藏字段中检索时解码该值。 如果用户输入包含法语字符,则代码将崩溃。如何编码包含链接,法语和其他文化字符的字符串。 我收到以下错误
A potentially dangerous Request.Form value was detected from the client (ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder1$EmailHiddenField="...434] - [Exécuter la macro...").
答案 0 :(得分:3)
嗯..如果您正在使用c#,那么这是我的尝试..
将整个HTML文档编码为Base64字符串,然后使用URLEncode。
byte[] bytesToEncode = Encoding.UTF8.GetBytes(myHTMLDocAsString);
string encodedText = Convert.ToBase64String(bytesToEncode);
然后URLEncode(encodedText)
这可以通过HTTP成功传输为POST而不会出错!
现在,如果您需要将其存储在隐藏字段中,而不是POST,只需将其输入隐藏字段即可。
希望有所帮助......
答案 1 :(得分:2)
将全球化代码标记为:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="nb-no" uiCulture="no"/>
进一步按照这个答案,您将了解这些字符串的编码 - 解码:
Getting U+fffd/65533 instead of special character from Query String