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

时间:2011-07-16 13:05:38

标签: asp.net xml localization character-encoding

我使用包含App_LocalResource个文件的.resx文件夹向客户的网站添加了多种语言。

客户端的测试应用程序托管在没有外部Internet访问权限的服务器上,因此我必须remote desktop到该站点并手动复制通过Notepad进行的任何更改。

到目前为止,我手动创建了一个App_LocalResource文件夹,创建了.resx个文件,并通过记事本复制了每个文件的来源。

我现在收到一个解析器错误:

  

分析程序错误消息:给定编码中的字符无效。

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 个答案:

答案 0 :(得分:3)

尝试在第一行的resx文件中添加encoding属性,如下所示:

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

答案 1 :(得分:1)

我不确定,但您的RESX文件可能需要将自己标识为XML解析器UTF-8。确定导致它的原因之一是使用二进制搜索(递归地一次移除一半文件),直到找到导致问题的部分。然后,如果需要,您可以use CDATA转义解析器不喜欢的任何字符。