2013-04-09 34 views
0

我正在使用resx文件來存儲一些Web應用程序的本地化內容。我被要求編寫一個測試機制來知道這些資源文件的值是否具有非UTF-8內容。我可以將非UTF-8內容添加到.net resx文件嗎?

resx文件是XML文件,它們的頭文件指定它們是UTF-8編碼的。所以我的問題(也許顯而易見或者愚蠢)是,有人可以將非UTF-8字符串添加到資源文件值中嗎?

我已經搜索瞭如何獲得一些字符串的編碼,但沒有防彈的方法,所以我不知道如果我已經被要求創建的測試是需要或可能的.. 。

編輯 只是爲了澄清,試驗應在本地化應用程序中進行,並且如果該字符串不是一個合法的UTF-8則顯示默認的(本地化)值

回答

0

在一定程度上,是的。您可以毫不費力地存儲純ASCII文本。

以外呢?你最好的選擇是爲它寫一個測試。在你的代碼中定義一些非UTF8字符串,將它們存儲在.resx文件中(爲了簡單起見,使用ResxRescourceWriter)並將它們取出。將它們打印到屏幕上並查看它們是否匹配。

當然也可以更改resx文件的編碼。如果這樣做,則可以存儲以該格式編碼的字符串。

你最好打賭是試試看看會發生什麼。

編輯:根據評論中的澄清。

如果您需要驗證現有值,最好的選擇是遍歷resx文件,將所有文本轉儲到.txt文件。

如果您然後在Notepad ++中打開該文件,則可以指定UTF-8編碼。任何不能顯示的都不是UTF-8文本,從resx中拉出時不會正確顯示。

+0

問題是,我在該應用程序上有3,000個resx文件(不要問爲什麼,我在那之前觸摸了代碼:P)。所以需要知道的是,當我嘗試加載這些數千個文件中的任何一個數據時(本地化時),請確保該字符串是有效的UTF-8值 – pollirrata 2013-04-09 21:03:05

+0

@pollirrata:根據您的評論更新我的回答。 – Jeff 2013-04-09 21:06:39

+1

純ASCII *是*有效的UTF-8。 – 2013-04-09 21:08:11

相關問題