Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memuatkan Kandungan UTF-8 ke dalam Wstrings pada Windows?

Bagaimana untuk Memuatkan Kandungan UTF-8 ke dalam Wstrings pada Windows?

Susan Sarandon
Lepaskan: 2024-11-06 21:35:03
asal
856 orang telah melayarinya

How to Load UTF-8 Content into Wstrings on Windows?

Memuatkan Kandungan UTF-8 ke dalam Wstrings pada Windows

Membaca fail Unicode (UTF-8) ke dalam wstrings pada platform Windows memerlukan pengendalian yang teliti pengekodan aksara untuk memastikan tafsiran yang betul bagi data teks.

Dengan kemunculan C 11, faset std::codecvt_utf8 menyediakan penyelesaian yang mantap untuk menukar rentetan bait berkod UTF-8 kepada rentetan aksara UCS2 atau UCS4. Aspek ini boleh memudahkan pembacaan dan penulisan fail UTF-8.

Menggunakan std::codecvt_utf8 Facet

Untuk menggunakan facet std::codecvt_utf8 dengan berkesan, langkah berikut terlibat:

  1. Buat objek setempat yang merangkum maklumat khusus budaya dan termasuk faset penukaran UTF-8.
  2. Serapkan penimbal strim ifstream dengan maklumat setempat .
  3. Gunakan penimbal strim tertanam untuk membaca fail UTF-8.

Contoh pelaksanaan pendekatan ini digariskan di bawah:

#include <sstream>
#include <fstream>
#include <codecvt>

std::wstring readFile(const char* filename) {
  std::wifstream wif(filename);
  wif.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
  std::wstringstream wss;
  wss << wif.rdbuf();
  return wss.str();
}
Salin selepas log masuk

Fungsi ini boleh digunakan untuk memuatkan kandungan UTF-8 dengan mudah ke dalam pembolehubah wstring.

Alternatif: Menetapkan Tempatan C Global

Sebagai alternatif, adalah mungkin untuk menetapkan C global lokalkan ke UTF-8 sebelum bekerja dengan aliran rentetan. Ini menghapuskan keperluan untuk menyerap penimbal strim secara manual:

std::locale::global(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
Salin selepas log masuk

Dengan pendekatan ini, semua pembina setempat standard berikutnya akan memulangkan salinan lokal C global yang diubah suai, membenarkan pengendalian automatik pengekodan UTF-8.

Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Kandungan UTF-8 ke dalam Wstrings pada Windows?. 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