Mam aplikację VB6, która wykonuje listę katalogów i wybiera nazwy plików. Niektóre z nich są akcentowane, na przykład "Guimarães.txt" (małe A z tyldą). Zarówno funkcja VB Dir, jak i funkcje FileSystemObject nie są w stanie rozpoznać akcentowanego znaku, a zamiast tego zwracają nazwę pliku jako "Guimar? Es.pdf", więc nie mogę potem otworzyć pliku. Prawidłowo widzę plik w Eksploratorze Windows:Czytanie akcentowanych nazw plików w VB6
Dzieje się tak tylko w jednym środowisku na żywo z systemem Windows Server 2003 R2. W naszych systemach testowych możemy poprawnie odczytać plik, chociaż są to głównie Windows 2008 i Windows 7. Początkowo sądziłem, że to zależy od wersji FSO, ale ponieważ "Dir" daje takie same wyniki, już nie myślę. Ponadto, gdy zapisuję nazwę pliku w pliku dziennika, jest on również niepoprawny. Sądzę więc, że na bardzo wczesnym etapie nie jest on w stanie obsłużyć postaci i zastępuje ją znakiem zapytania.
To, co muszę ustalić, jest przyczyną problemu: czy jest to wersja systemu Windows lub moje ustawienia regionalne (których nie mogę wyświetlić, ponieważ moje konto jest zablokowane) i co mogę zrobić aby rozwiązać problem. Na razie poprosiłem użytkowników, aby nie używali tych znaków, ale nie jest to rozwiązanie długoterminowe.
Dzięki.
Podejrzewam, że problem jest związany z VB6 i brakiem wsparcia dla Unicode. –
Spróbuj ustawić "Język dla programów innych niż Unicode" w Ustawieniach regionalnych na Portugalski i sprawdź, czy to rozwiązuje problem. Uważam, że tak powinno być. Niestety, wątpię, aby stary MS VB Runtime obsługiwał Unicode, tak jak mówi Cody. –
Przyczyną jest fakt, że VB6 próbuje użyć tylko jednego bajtu do kodowania 100 000 różnych znaków. Niektóre listy zostaną utracone. Zmiana języka zmienia tylko to, które litery stracą. Ale ã? To jest U + 00E3, to jest w ISO-8859-1/CP1252, który jest zdecydowanie najbardziej rozpowszechniony. – MSalters