Masalah Aplikasi Konsol
Fungsi konsol 8-bit menggunakan halaman kode OEM. Semua fungsi lain menggunakan halaman kode ANSI secara default. Ini berarti bahwa string yang dikembalikan oleh fungsi konsol mungkin tidak diproses dengan benar oleh fungsi lain dan sebaliknya. Misalnya, jika FindFirstFileA mengembalikan string yang berisi karakter ANSI tertentu yang diperluas, WriteConsoleA tidak akan menampilkan string dengan benar.
Solusi jangka panjang terbaik untuk aplikasi konsol adalah menggunakan Unicode. Konsol akan menerima pengodean UTF-16 pada varian W api atau pengodean UTF-8 pada varian A API setelah menggunakan SetConsoleCP dan SetConsoleOutputCP ke 65001
(CP_UTF8
konstanta) untuk halaman kode UTF-8.
Dengan membatasi solusi tersebut , aplikasi konsol harus menggunakan fungsi SetFileApisToOEM . Fungsi tersebut mengubah fungsi file yang relevan sehingga menghasilkan string set karakter OEM daripada string set karakter ANSI.
Berikut ini adalah fungsi file:
CopyFile
CreateDirectory
CreateFile
CreateProcess
DeleteFile
FindFirstFile
FindNextFile
GetCurrentDirectory
GetDiskFreeSpace
GetDriveType
Saat berhadapan dengan baris perintah, aplikasi konsol harus mendapatkan baris perintah dalam bentuk Unicode dan mengonversinya ke formulir OEM, menggunakan fungsi karakter-ke-OEM yang relevan. Perhatikan juga, argv tersebut menggunakan set karakter ANSI.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk