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
1011 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!

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