Obsługa standardu Unicode w kompilator i program łączący
W tym temacie opisano obsługa standardu Unicode w narzędziach Visual C++ kompilacji.
Nazwy plików
Nazwy plików, określonego w wierszu polecenia, a w kompilatorze dyrektyw (takie jak # include) mogą teraz zawierać znaki Unicode.W poprzednich wersjach języka Visual C++ były obsługiwane tylko nazwy plików ANSI.Znaki inne niż ASCII powinno się unikać nazwy pliku wyjściowego, dlatego plik wykonywalny może być uruchomiony na zlokalizowanych wersjach systemu Windows 98 i Windows Me.Pliki kodu źródłowego
Znaki Unicode są teraz obsługiwane w identyfikatory, makra, Literały ciągu i znaków i komentarze.Nazwy uniwersalnego charakteru teraz również są obsługiwane.Unicode można wprowadzać do pliku kodu źródłowego w następujących kodowania:
UTF-16 little endian, z lub bez znacznika kolejności bajtów (BOM)
UTF-16 big endian, z lub bez BOM
UTF-8 z BOM-U
Dane wyjściowe
Podczas kompilacji kompilator generuje Diagnostyka do konsoli w UTF-16.Znaki, które mogą być wyświetlane w konsoli zależy od właściwości okna konsoli.Przekierowano do pliku dane wyjściowe kompilatora znajduje się w bieżącej strony kodowej konsoli ANSI.Pliki odpowiedzi Linker i.Pliki DEF
Pliki odpowiedzi i DEF może być albo UTF-16 znacznika kolejności bajtów lub ANSI.Wcześniej była obsługiwana tylko ANSI.Zrzuca .asm i .cod
Zrzuca .asm i .cod są w formacie ANSI, domyślnie dla zachowania zgodności z MORGÓW.Za pomocą /FAu wyjście UTF-8.Należy zauważyć, że jeśli zostanie określony /FAs, intermingled źródła tylko bezpośrednio wydruku i może wyglądać na zniekształcony, na przykład, jeśli kod źródłowy jest UTF-8, a nie określi się /FAsu.
Można włączyć nazw plików Unicode w środowisku programowania (zobacz Jak: Otwórz strony właściwości projektu), wybierając odpowiednie narzędzie i wybierając Włącz pliki odpowiedzi Unicode właściwość, która jest domyślnie włączona.Jednym z powodów, może zmienić to ustawienie domyślne jest, jeśli modyfikujesz środowiska programowania i użyć kompilatora, który nie obsługuje standardu Unicode.