Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menukar Rentetan UTF-8 dengan Selamat kepada wstring dalam C?

Bagaimanakah Saya Boleh Menukar Rentetan UTF-8 dengan Selamat kepada wstring dalam C?

Linda Hamilton
Lepaskan: 2024-12-18 03:04:09
asal
131 orang telah melayarinya

How Can I Safely Convert a UTF-8 String to a wstring in C  ?

C : Menukar rentetan kepada wstring semasa Memelihara Pengekodan

Anda diberi rentetan s yang mengandungi aksara Jepun dan ingin menetapkan kandungannya kepada wstring, ws. Tugasnya ialah melaksanakan tugasan ini tanpa memperkenalkan sebarang isu pengekodan.

Penyelesaian:

Menggunakan C 11 dan ke atas, tugasan ini boleh dicapai semata-mata dengan perpustakaan standard.

Langkah 1: Sertakan Perlu Pengepala

#include <locale>
#include <codecvt>
#include <string>
Salin selepas log masuk

Langkah 2: Buat penukar

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
Salin selepas log masuk

Penukar ini akan mengendalikan penukaran antara UTF-8 (pengekodan s) dan UTF-16 (pengekodan ws).

Langkah 3: Tukar rentetan ke rentetan wstring

std::wstring ws = converter.from_bytes(s);
Salin selepas log masuk

Contoh:

std::string s = "おはよう";
std::wstring ws;

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
ws = converter.from_bytes(s);
Salin selepas log masuk

Nota:

  • Penyelesaian ini menganggap s mengandungi data Unikod berkod UTF-8 yang sah.
  • Untuk senario pengekodan yang lebih kompleks, pertimbangkan untuk menggunakan std::codecvt_utf8.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan UTF-8 dengan Selamat kepada wstring dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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