Penukaran Merentas Platform Antara UTF8 dan Aksara Luas dalam STL
Apabila bekerja dengan sistem pengendalian yang berbeza, pengendalian data teks boleh menimbulkan cabaran kerana perwakilan watak yang berbeza-beza. Sebagai contoh, menukar rentetan berkod UTF8 dalam objek rentetan standard kepada rakan sejawatnya yang luas dalam objek rentetan lebar boleh berbeza-beza merentas platform.
Pada masa lalu, pembangun terpaksa bergantung pada fungsi khusus platform seperti MultiByteToWideChar dan WideCharToMultiByte dalam Windows, mengehadkan keserasian merentas platform. Syukurlah, kemunculan Perpustakaan Standard C (STL) menyediakan penyelesaian yang lebih serba boleh.
Satu pendekatan menggunakan rangsangan::pustaka tempatan, seperti yang dicadangkan dalam urutan sebelumnya, tetapi sejak ia dimasukkan ke dalam standard sebagai C 11 , pilihan yang lebih moden dan mudah diakses wujud:
berasaskan STL Penukaran
Kod berikut menunjukkan proses penukaran:
UTF-8 kepada UTF-16
std::string source; ... std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert; std::u16string dest = convert.from_bytes(source);
UTF -16 hingga UTF-8
std::u16string source; ... std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert; std::string dest = convert.to_bytes(source);
Pendekatan ini menawarkan platform kebebasan dan kemudahan penggunaan, menjadikannya penyelesaian yang berkesan untuk penukaran merentas platform antara UTF8 dan aksara lebar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Antara UTF8 dan Watak Wide dengan Cekap dalam C Merentasi Platform Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!