我可以将非UTF-8内容添加到.net resx文件中吗?

时间:2013-04-09 20:49:11

标签: .net utf-8 resources resx

我正在使用resx文件存储某些网络应用的本地化内容。我被要求编写一个测试机制来了解这些资源文件是否在值上有非UTF-8内容。

resx文件是XML文件,在其标题上指定它们是UTF-8编码的。所以我的问题(可能显而易见或愚蠢)是,有人可以将非UTF-8字符串添加到资源文件值中吗?

我已经搜索了如何获取某些字符串的编码,但是没有防弹方法,所以我不确定是否需要或可能要求我创建的测试...

EDIT 只是为了澄清,测试应该在本地化的应用程序中执行,如果字符串不是有效的UTF-8,则显示默认(本地化)值

1 个答案:

答案 0 :(得分:0)

在某种程度上,是的。您可以毫无困难地存储纯ASCII文本。

除此之外?你最好的选择是为它写一个测试。在代码中定义一些非UTF8字符串,将它们存储在.resx文件中(为简单起见使用ResxRescourceWriter)并将它们拉回来。将它们打印到屏幕上,看它们是否匹配。

当然也可以更改resx文件的编码。如果这样做,您可以存储以该格式编码的字符串。

你最好的办法就是试着看看会发生什么。

编辑:基于评论中的澄清。

如果您需要验证现有值,最好的选择是迭代resx文件,将所有文本转储到.txt文件。

如果您随后在Notepad ++中打开该文件,则可以指定UTF-8编码。任何无法显示的内容都不是UTF-8文本,从resx中提取时无法正确显示。