Untuk versi Microsoft Visual Studio 2008 dari artikel ini, lihat 980263.
Gejala
Pertimbangkan skenario berikut:
-
Anda membuat proyek Visual C++ di Microsoft Visual Studio 2010.
-
Berkas proyek menginisialisasi menyempit string literal. String literal ini berisi karakter Asia dan tidak diawali dengan huruf "L"
-
Berkas disimpan dengan menggunakan pengkodean UTF-8.
Dalam skenario ini, ketika Anda menyusun proyek, string literal yang disalahartikan oleh kompilator. Selain itu, Anda mengalami salah satu masalah berikut ini:
-
Jika file yang berisi tanda perintah byte (BOM), menghimpun operasi berhasil. Namun, string literal masih ditampilkan dengan benar di aplikasi yang dihasilkan. Selain itu, Anda mungkin menerima pesan peringatan berikut ketika Anda menyusun proyek:
Peringatan C4566: Karakter yang diwakili oleh nama universal karakter 'xx' tidak dapat ditunjukkan di halaman kode ini.
-
Menghimpun operasi gagal. Selain itu, Anda mungkin menerima pesan galat ketika Anda menyusun proyek:
Galat C2078: Terlalu banyak initializers
-
Menghimpun operasi gagal. Selain itu, Anda mungkin menerima pesan peringatan berikut ketika Anda menyusun proyek:
Peringatan C4129: 'karakter': urutan escape karakter yang tidak dikenali.
Penyebab
Masalah ini terjadi karena kompilator mengasumsikan bahwa literal dalam berkas dapat ditafsirkan sebagai byte peluang MBCS pengkodean bukan sebagai Unicode byte tunggal. Karena masalah ini, kompilator salah diterjemahkan berkas.
Pemecahan Masalah
Untuk mengatasi masalah ini, menerapkan hotfix ini ke komputer di mana Anda menyusun proyek. Kemudian, simpan berkas bersama-sama dengan tanda perintah byte dan kemudian tambahkan perintah "pragma" berikut sebelum string literal file sumber:
#pragma execution_character_set("utf-8")
Catatan Petunjuk "pragma" ini menetapkan unit terjemahan untuk berkas sumber sampai petunjuk "pragma" ini digantikan oleh lain "pragma" petunjuk.
Informasi lebih lanjut tentang perbaikan terbaru ini
Informasi Hotfix
Sekarang tersedia hotfix yang didukung dari Microsoft. Namun, ini ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Perbaikan terbaru ini dapat menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terlalu dipengaruhi oleh masalah ini, kami menganjurkan Anda menunggu berikutnya yang berisi perbaikan terbaru ini. Untuk segera menyelesaikan masalah ini, hubungi layanan dukungan pelanggan Microsoft untuk mendapatkan hotfix. Untuk daftar lengkap nomor telepon layanan dukungan pelanggan Microsoft dan informasi mengenai biaya dukungan, kunjungi website Microsoft berikut:
http://support.microsoft.com/contactus/?ws=supportCatatan Dalam kasus tertentu, biaya yang biasanya diadakan untuk panggilan dukungan mungkin dibatalkan apabila profesional dukungan Microsoft menentukan bahwa pembaruan khusus akan memecahkan masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah yang tidak termasuk pada pembaruan tertentu yang dimaksud dukungan tambahan.
Prasyarat
Anda harus memiliki Microsoft Visual Studio 2010 diinstal untuk menerapkan hotfix ini.
Informasi menghidupkan ulang
Anda tidak harus menghidupkan ulang komputer setelah menerapkan hotfix ini.
Informasi berkas
Versi bahasa Inggris dari hotfix ini memiliki atribut berkas (atau atribut berkas yang lebih baru) yang tercantum dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas tersebut dicantumkan dalam Waktu Universal Terkoordinasi (UTC). Saat melihat informasi berkas, waktu akan diubah ke waktu lokal. Untuk menemukan perbedaan antara waktu UTC dan waktu lokal, gunakan tab Zona Waktu di item Tanggal dan Waktu di Panel Kontrol.
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
---|---|---|---|---|---|
C1.dll |
16.0.30319.351 |
658,240 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
723,776 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
899,400 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,286,920 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,428,232 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,659,664 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
201,032 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
202,568 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
219,976 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
221,000 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
290,632 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
291,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
292,680 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
293,704 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,392 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,904 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
450,376 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,104 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,616 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,024 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,536 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
483,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
484,168 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
486,728 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
487,240 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
491,848 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
492,360 |
23-Aug-2010 |
06:45 |
x86 |
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".