Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Memaparkan Rentetan UTF-8 dengan Betul dalam Konsol Windows Menggunakan Go?

Bagaimana untuk Memaparkan Rentetan UTF-8 dengan Betul dalam Konsol Windows Menggunakan Go?

DDD
Lepaskan: 2024-11-03 09:08:03
asal
911 orang telah melayarinya

How to Display UTF-8 Strings Correctly in Windows Consoles Using Go?

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan