如何在资源文件中正确转义特殊字符?

3

我正在处理一个项目,试图将一个字符串添加到资源文件中。我读过MVC 3项目中的资源文件被转换为XML,并且特殊字符会自动转义,但事实并非如此。我已经尝试使用 / 和 %xx 十六进制方法来输入特殊字符,但这些方法都不能正常工作。如果不转义一些字符,代码就会出错。以下是我要修复的资源文件中的字符串:

Minimum of 6 letters, numbers, and special characters, no spaces. Special characters include: !, @, #, $, %, ^, &, (, ), -, _, =, +, {, }, |, /, ?. 

从最后可以看到,我使用了一些特殊字符,但在运行代码时似乎不喜欢其中的某些字符。有什么建议吗?

3个回答

5

使用HTML代码,我刚刚测试过,它可以正常工作,例如单引号'的HTML代码是’


在处理撇号和Html.Encode时,遇到问题时可以在资源中使用此解决方案。有效。 - Maurice Klimek

0

我通常使用@"",因为它比转义每个特殊字符更简单。

@"至少6个字母、数字和特殊字符,没有空格。特殊字符包括:!、@、#、$、%、^、&、(、)、-、_、=、+、{、}、|、/、?。"


在我的情况下,这并不起作用。我仍然得到了一直以来的格式错误。这是在资源文件中(即AdminResource.resx)。我尝试过使用@"string",但那也没有起作用。 - Skrubb
沿着这条路线前进,也许可以尝试以编程的方式将这个字符串添加到你的资源文件中?所以,在一个C#文件中,可以做类似这样的操作AddResource(key, value); - jdnew18
你是说把它放在ViewModel里吗?像这样将其添加到正则表达式中:[RegularExpression(@“^([a-zA-Z0-9 \!\ @ \#\ $ \%\ ^ \&()\ -_ +。'`\〜/\ = \?{} |]){6,255} $”,ErrorMessageResourceType = AddResource(UsernameFormatError,“最少6个字母,数字和特殊字符,没有空格。特殊字符包括:!,@,#,$,%,^,&,(), - ,_,=,+,{,},|,/,?”。)]? - Skrubb
将此添加到正则表达式/视图模型中也没有起作用。尝试使用“ErrorMessage =“string”和AddResource(key, value)。 - Skrubb
通过排除法,我发现“{”和“}”是导致错误的罪魁祸首。因此,我将删除它们并将它们从要包含的特殊字符中省略,以使事情变得简单。 - Skrubb
@Skrubb 使用 {{ }} 转义 { 和 }。 - Juan Zamudio

0
请注意,在Visual Studio中编辑.resx文件时,不应转义任何字符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接