Cara Mengeluarkan Rentetan dengan Betul dalam Konsol Windows Menggunakan Go
Apabila melaksanakan program Go yang mencetak rentetan yang dikodkan UTF-8 dalam tetingkap konsol pada Windows, output mungkin kelihatan bercelaru kerana perbezaan dalam piawaian pengekodan. Windows biasanya menggunakan pengekodan IBM850, manakala Go menggunakan UTF-8 secara lalai.
Untuk menangani isu ini dan memastikan rentetan dicetak dengan betul dalam tetingkap konsol:
Gunakan Fungsi consolePrintString:
Kod yang disediakan mentakrifkan fungsi yang dipanggil consolePrintString yang menggunakan kaedah tidak didokumenkan tetapi berkesan untuk mengendalikan output rentetan dalam persekitaran khusus Windows.
Tukar UTF-8 kepada UTF- 16:
Dalam fungsi consolePrintString, rentetan input UTF-8 ditukar kepada UTF-16 menggunakan fungsi Encode daripada pakej unicode/utf16. UTF-16 ialah pengekodan pilihan untuk output konsol.
Tulis ke Konsol:
Fungsi WriteConsoleW daripada perpustakaan kernel32.dll digunakan untuk menulis UTF-16 rentetan ke konsol. Ia memerlukan parameter yang menentukan pemegang konsol, alamat data rentetan, panjang rentetan dan penuding untuk merekodkan bilangan aksara yang ditulis.
Contoh Penggunaan:
Dalam fungsi utama yang disediakan, dua rentetan dicetak menggunakan fungsi consolePrintString: "Hello ☺" dan "éèïöîôùòèìë". Rentetan ini kini sepatutnya dipaparkan dengan betul dalam tetingkap konsol.
Nota:
Kaedah ini menggunakan API tidak berdokumen dan tidak mengendalikan pelbagai senario, seperti ubah hala stdout atau ralat pengendalian. Gunakannya dengan berhati-hati dan memahami batasannya.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Rentetan UTF-8 dengan Betul dalam Konsol Windows Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!