我使用ResourceManager
来本地化我的网络表单应用程序中的字符串。该应用程序支持en-us
和sv-se
。从相应的资源文件中正确获取字符串,但是当它们显示时,unicode字符将作为垃圾值。
resources.sv-se.restext
...
ContactInfoFormatPrimary={0} (primär)
...
输出
获取资源的代码:
ResourceManager resourceManager = GetResourceManager(...)
...
text = resourceManager.GetString(resourceId);
我尝试调试代码,返回的文本是{0} (prim�r)
导致资源解码错误的原因是什么?
更新:
我能够在控制台应用程序中使用相同的架构并获取正确的字符串,是否有任何与应用程序配置相关的内容需要处理?
答案 0 :(得分:2)
您很可能不会将资源文本文件(.txt
,.restext
)保存为UTF-8
或UTF-16
/ Unicode
。请参阅MSDN documentation of Resgen.exe
:
包含资源的文本文件必须使用UTF-8或Unicode(UTF-16)编码保存,除非它仅包含Basic Latin范围内的字符(至U + 007F)。 Resgen.exe在处理使用ANSI编码保存的文本文件时会删除扩展的ANSI字符。
检查>文本文件的最简单方法是在Notepad
中打开它,点击Save as...
菜单中的File
并查看&# 39;显示在右下角的Encoding
下拉菜单中。它应设置为UTF-8
或Unicode
。
要修复编码,只需在UTF-8
的{{1}}对话框中选择Unicode
或Save as...
,然后按Notepad
覆盖原始文件。