Bagikan melalui


Dukungan untuk Set Karakter Multibyte (MBCSs)

Set karakter multibyte (MBCSs) adalah pendekatan yang lebih lama untuk kebutuhan untuk mendukung set karakter, seperti Jepang dan Cina, yang tidak dapat diwakili dalam satu byte. Jika Anda melakukan pengembangan baru, Anda harus menggunakan Unicode untuk semua string teks kecuali mungkin string sistem yang tidak dilihat oleh pengguna akhir. MBCS adalah teknologi warisan dan tidak direkomendasikan untuk pengembangan baru.

Implementasi MBCS yang paling umum adalah kumpulan karakter byte ganda (DBCSs). Visual C++ secara umum, dan MFC khususnya, sepenuhnya diaktifkan untuk DBCS.

Untuk sampel, lihat file kode sumber MFC.

Untuk platform yang digunakan di pasar yang bahasanya menggunakan set karakter besar, alternatif terbaik untuk Unicode adalah MBCS. MFC mendukung MBCS dengan menggunakan jenis data dan fungsi run-time C yang dapat diinstansiasi. Anda harus melakukan hal yang sama dalam kode Anda.

Di bawah MBCS, karakter dikodekan dalam 1 atau 2 byte. Dalam karakter 2 byte, byte pertama, atau memimpin, memberi sinyal bahwa byte dan byte berikut akan ditafsirkan sebagai satu karakter. Byte pertama berasal dari berbagai kode yang disediakan untuk digunakan sebagai byte prospek. Rentang byte mana yang dapat menjadi byte prospek tergantung pada halaman kode yang digunakan. Misalnya, halaman kode Jepang 932 menggunakan rentang 0x81 melalui 0x9F sebagai byte prospek, tetapi halaman kode Korea 949 menggunakan rentang yang berbeda.

Pertimbangkan semua hal berikut dalam pemrograman MBCS Anda.

Karakter MBCS di lingkungan karakter MBCS dapat muncul dalam string seperti nama file dan direktori.

Operasi pengeditan

Operasi pengeditan dalam aplikasi MBCS harus beroperasi pada karakter, bukan byte. Tanda sisipan tidak boleh membagi karakter, tombol Panah Kanan harus memindahkan satu karakter ke kanan, dan sebagainya. Hapus harus menghapus karakter; Urungkan harus memasangnya kembali.

Penanganan string

Dalam aplikasi yang menggunakan MBCS, penanganan string menimbulkan masalah khusus. Karakter kedua lebar dicampur dalam satu string; oleh karena itu, Anda harus ingat untuk memeriksa byte prospek.

Dukungan pustaka run-time

Pustaka run-time C dan MFC mendukung pemrograman byte tunggal, MBCS, dan Unicode. String byte tunggal diproses dengan str keluarga fungsi run-time, string MBCS diproses dengan fungsi yang _mbs sesuai, dan string Unicode diproses dengan fungsi yang wcs sesuai. Implementasi fungsi anggota kelas MFC menggunakan fungsi run-time portabel yang memetakan, dalam keadaan yang tepat, ke keluarga fungsi normal str , fungsi MBCS, atau fungsi Unicode, seperti yang dijelaskan dalam "Portabilitas MBCS/Unicode."

Portabilitas MBCS/Unicode

Dengan menggunakan file header tchar.h, Anda dapat membuat aplikasi byte tunggal, MBCS, dan Unicode dari sumber yang sama. Tchar.h mendefinisikan makro yang diawali dengan _tcs , yang memetakan ke str, _mbs, atau wcs fungsi, yang sesuai. Untuk membangun MBCS, tentukan simbol _MBCS. Untuk membangun Unicode, tentukan simbol _UNICODE. Secara default, _UNICODE didefinisikan untuk aplikasi MFC. Untuk informasi selengkapnya, lihat Pemetaan Teks Generik di tchar.h.

Catatan

Perilaku tidak terdefinisi jika Anda menentukan dan _UNICODE_MBCS.

File header Mbctype.h dan Mbstring.h menentukan fungsi dan makro khusus MBCS, yang mungkin Anda butuhkan dalam beberapa kasus. Misalnya, _ismbblead memberi tahu Anda apakah byte tertentu dalam string adalah byte prospek.

Untuk portabilitas internasional, kode program Anda dengan Unicode atau set karakter multibyte (MBCSs).

Apa yang ingin Anda lakukan?

Baca juga

Teks dan String
Dukungan MBCS di Visual C++