ASP.NET - 给定编码中的无效字符 .resx

5
我正在为客户的网站添加多种语言,使用包含.resx文件的App_LocalResource文件夹。客户的测试应用程序托管在没有外部Internet访问权限的服务器上,因此我必须通过远程桌面连接到该站点,并手动复制通过Notepad进行的任何更改。到目前为止,我已经手动创建了一个App_LocalResource文件夹,创建了.resx文件,并通过Notepad复制了每个文件的源代码。现在我遇到了解析器错误:

解析器错误消息:在给定编码中存在无效字符。

Line 137:  </data>
Line 138:  <data name="DEATHINSERVICENOMINATIONS" xml:space="preserve">
Line 139:    <value>Mort à candidatures Prestation de service</value>
Line 140:  </data>
Line 141:  <data name="EDITPERSONALDATA" xml:space="preserve">

我手动使用记事本复制这些文件是否可能与此有关,还是有其他原因?

我已将此添加到web.config文件中:

<globalization fileEncoding="utf-8"
    requestEncoding="utf-8"
    responseEncoding="utf-8"/>
2个回答

6

尝试在你的resx文件中添加一个encoding属性,放在第一行,像这样:

<?xml version="1.0" encoding="ISO-8859-1"?>

就是这样了。我的编码默认设置为utf-8。谢谢! - TGuimond

1

我不确定,但你的RESX文件可能需要向XML解析器标识自己为UTF-8。确定问题的一种方法是使用二分查找(递归地每次删除一半的文件),直到找到引起问题的部分。然后,如果需要,您可以使用CDATA来转义解析器不喜欢的任何字符。


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