我有一個VB6應用程序,它執行文件夾的目錄列表並選取文件名。其中一些是重音符號,例如「Guimarães.txt」(帶有波浪號的小A)。 VB Dir函數和FileSystemObject函數都無法識別重音字符,而是將文件名返回爲「Guimar?es.pdf」,因此我無法打開文件。我可以在Windows資源管理器中正確地看到該文件在VB6中讀取重音文件名
這隻發生在運行Windows Server 2003 R2的一個活動環境中。在我們的測試系統中,我們可以正確地讀取文件,但這些文件主要是Windows 2008和Windows 7.我最初認爲這取決於FSO的版本,但由於「Dir」給出了相同的結果,我不再這麼認爲。另外,當我將文件的名稱寫入日誌文件時,它也是不正確的。所以我認爲在很早的階段就無法處理這個角色,並用一個問號來代替它。
我需要確定的是問題的原因:它是由Windows的版本還是由於我的區域設置(我無法查看,因爲我的帳戶被鎖定),以及我能做什麼解決問題。目前,我已經要求用戶不要使用這些字符,但這不是一個長期的解決方案。
謝謝。
我會懷疑這個問題與VB6有關,並且缺乏對Unicode的支持。 –
嘗試在「區域設置」中將「非Unicode程序的語言」設置爲葡萄牙語,然後查看是否解決了該問題。我相信它應該。不幸的是,我懷疑舊的MS VB運行時支持Unicode,就像科迪說的那樣。 –
基本原因確實是VB6試圖只使用一個字節來編碼100.000個不同的字符。有些字母會丟失。改變語言只會改變哪些字母會丟失。但是?那就是U + 00E3,即ISO-8859-1/CP1252,這是迄今最常見的。 – MSalters