對包含重音字符的字符串使用Directory.Exists()
時出現問題。如何處理目錄名稱中的重音字符
這是目錄路徑:D:\ést_test\scenery
。它進來作爲一個文件一個簡單的字符串,我解析:
[Area.121]
Title=ést_test
local=D:\AITests\ést_test
Layer=121
Active=FALSE
Required=FALSE
我的代碼正在本地值和增加\scenery
它。我需要測試它是否存在(它的確如此)並且簡單地使用:
if (!Directory.Exists(area.Path))
{
// some handling code
area.AreaIsValid = false;
}
這將返回false。看來我正在做的字符串處理是取代重音字符。在VS2012中的文本可視化工具將顯示有關信息(將DirectoryManager只是圍繞System.IO.Directory
一包):
而作爲顯示警告信息將顯示有關:
如此看來,重音字符不被識別。搜索這個問題確實出現了,但主要是關於刪除或替換重音字符。我目前使用'正常'字符串處理。我嘗試使用FileInfo
,但路徑似乎無論如何都受到損壞。
所以我的第一個問題是如何獲得路徑存儲到一個字符串,以便它會通過Directory.Exists
測試?
這引發了路徑名中非拉丁字符的更廣泛問題。我有世界各地的用戶,所以我可以看到阿拉伯文。俄文,中文等。我如何處理所有這些?
很可能你的INI解析代碼是蠕蟲,因爲它以ASCII(或類似的東西)打開utf8文件。 –