Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menukar Antara UTF-8 dan Rentetan Watak Lebar dalam C?

Bagaimana untuk Menukar Antara UTF-8 dan Rentetan Watak Lebar dalam C?

Patricia Arquette
Lepaskan: 2024-12-30 09:18:17
asal
627 orang telah melayarinya

How to Convert Between UTF-8 and Wide Character Strings in C  ?

UTF8 ke/dari Penukaran Wide Char dalam STL

Menukar teks Unicode yang diwakili sebagai rentetan UTF-8 dalam std::string kepada aksara lebar rentetan dalam std::wstring dan sebaliknya adalah penting untuk pengaturcaraan bebas platform. Begini cara untuk mencapainya menggunakan Pustaka Standard C:

UTF-8 ke UTF-16

C 11 memperkenalkan std::wstring_convert, yang memudahkan penukaran antara sempit dan rentetan aksara lebar:

std::string utf8Source;
...
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
std::u16string utf16Destination = converter.from_bytes(utf8Source);
Salin selepas log masuk

UTF-16 hingga UTF-8

Penukaran daripada UTF-16 kepada UTF-8 adalah serupa:

std::u16string utf16Source;
...
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
std::string utf8Destination = converter.to_bytes(utf16Source);
Salin selepas log masuk

Pendekatan ini menggunakan kemudahan std::wstring_convert Perpustakaan C Standard yang berkuasa, menawarkan penyelesaian piawai dan cekap untuk penukaran aksara UTF8 berbilang platform.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Antara UTF-8 dan Rentetan Watak Lebar dalam C?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan