考虑以下标记帮助器(隐藏了不相关的部分)
[HtmlTargetElement("*", Attributes = "optional-field-checkbox")]
public class OptionalFieldCheckbox : TagHelper
{
// [...]
[HtmlAttributeName("checkbox-label")]
public string CheckboxLabel { get; set; }
public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
// [...]
}
}
按如下所示调用上述标签帮助程序
<div optional-field-checkbox checkbox-label="L'évènement se déroule sur plusieurs jour ?">
<!-- [...] -->
</div>
当我从CheckboxLabel
方法的ProcessAsync
属性中获取值时,得到了以下错误编码的字符串:
我在卢布尔雅那边玩儿吗?
预期值为
您会在卢布尔雅那边玩得开心吗?
我有:
HtmlString
作为CheckboxLabel
的属性类型来绕过编码,但没有任何改变WebUtility.HtmlDecode
和WebUtility.UrlDecode
找回原始字符串,但无济于事如何通过ProcessAsync
方法获取原始字符串,并且如果不可能,如何将字符串编码回其原始形式?
答案 0 :(得分:1)
我认为您的cshtml剃刀文件是使用非UTF8编码保存的。
要更改编码,请单击文件>将yourfile.cshtml另存为...>使用编码保存;然后选择Unicode(UTF8)。
这可能会解决您的问题。