Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menukar C Strings ke Wstrings?

Bagaimana untuk Menukar C Strings ke Wstrings?

Linda Hamilton
Lepaskan: 2024-12-29 13:35:14
asal
1056 orang telah melayarinya

How to Convert C   Strings to Wstrings?

Menukar Rentetan C kepada Rentetan Wstring

Dalam C , menukar rentetan (atau char) kepada rentetan w (atau wchar_t ) membolehkan anda bekerja dengan aksara lebar, yang digunakan untuk mewakili aksara bukan ASCII seperti Kanji Jepun atau aksara Cyrillic.

Menggunakan Perpustakaan Standard

Untuk penukaran antara UTF-8 dan UTF-16, perpustakaan standard menyediakan penyelesaian yang komprehensif:

#include <locale>
#include <codecvt>
#include <string>

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
std::wstring wstr = converter.from_bytes("おはよう");
Salin selepas log masuk

Contoh

Contoh berikut menunjukkan ini penukaran:

#include <iostream>

int main() {
  std::string a = "Привет всем!";
  std::wstring b = std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>>().from_bytes(a);

  std::cout << b << std::endl;
  return 0;
}
Salin selepas log masuk

Output:

Привет всем!
Salin selepas log masuk

Pendekatan Warisan (Ditamatkan)

Perhatikan bahawa pengepala codecvt tidak digunakan dalam C 17. Untuk sistem tanpa pustaka gantian, anda boleh menggunakan warisan pendekatan:

#include <wchar.h>

wchar_t* wcs = (wchar_t*)MultiByteToWideChar(CP_UTF8, 0, a.c_str(), -1, NULL, 0);
Salin selepas log masuk

Walau bagaimanapun, kaedah ini mungkin tidak mengendalikan aksara Unikod tertentu dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Menukar C Strings ke Wstrings?. 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