Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melaksanakan UTF-8 Bebas Platform dan Penukaran Aksara Luas dalam C STL?
UTF8 Bebas Platform dan Penukaran Aksara Luas dalam STL
Menukar antara rentetan UTF8 dalam std::rentetan dan rentetan aksara lebar dalam std: :wstring ialah tugas biasa apabila membangunkan aplikasi merentas platform. Walau bagaimanapun, batasan perpustakaan C standard dalam hal ini boleh menimbulkan cabaran.
Mujurlah, C 11 menyediakan penyelesaian dengan pengenalan kelas std::wstring_convert. Kelas ini menggunakan templat std::codecvt untuk melakukan penukaran menggunakan skema pengekodan aksara tertentu.
Untuk penukaran UTF8 kepada UTF16:
std::string source; ... std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert; std::u16string dest = convert.from_bytes(source);
Untuk penukaran UTF16 kepada UTF8:
std::u16string source; ... std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert; std::string dest = convert.to_bytes(source);
Pendekatan ini bebas platform dan menyediakan cara standard untuk mengendalikan penukaran aksara UTF8 dan luas dalam STL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan UTF-8 Bebas Platform dan Penukaran Aksara Luas dalam C STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!