Bagikan melalui


I/O aliran Unicode dalam mode teks dan biner

Ketika rutinitas I/O streaming Unicode (seperti fwprintf, , fwscanf, fgetwcfputwc, fgetws, atau fputws) beroperasi pada file yang terbuka dalam mode teks (default), dua jenis konversi karakter terjadi:

  • Konversi Unicode-ke-MBCS atau MBCS-ke-Unicode. Ketika fungsi Stream-I/O Unicode beroperasi dalam mode teks, aliran sumber atau tujuan diasumsikan sebagai urutan karakter multibyte. Oleh karena itu, fungsi stream-input Unicode mengonversi karakter multibyte menjadi karakter lebar (seolah-olah dengan panggilan ke mbtowc fungsi). Untuk alasan yang sama, fungsi stream-output Unicode mengonversi karakter lebar menjadi karakter multibyte (seolah-olah dengan panggilan ke wctomb fungsi).

  • Pengangkutan terjemahan umpan baris kembali (CR-LF). Terjemahan ini terjadi sebelum konversi MBCS - Unicode (untuk fungsi input aliran Unicode) dan setelah konversi Unicode - MBCS (untuk fungsi output aliran Unicode). Selama input, setiap kombinasi umpan baris kembali gerbong diterjemahkan ke dalam karakter umpan baris tunggal. Selama output, setiap karakter umpan baris diterjemahkan ke dalam kombinasi umpan baris kembali pengangkutan.

Namun, ketika fungsi Stream-I/O Unicode beroperasi dalam mode biner, file diasumsikan sebagai Unicode, dan tidak ada terjemahan CR-LF atau konversi karakter yang terjadi selama input atau output. _setmode( _fileno( stdin ), _O_BINARY ); Gunakan instruksi untuk menggunakan wcin dengan benar pada file teks UNICODE.

Baca juga

Rutinitas runtime Universal C menurut kategori
Input dan output