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

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