ホームページ >バックエンド開発 >C++ >C 文字列を Wstring に変換するにはどうすればよいですか?

C 文字列を Wstring に変換するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-29 13:35:14994ブラウズ

How to Convert C   Strings to Wstrings?

C 文字列を Wstring に変換する

C では、文字列 (または char) を wstring (または wchar_t) に変換します。 ) を使用すると、日本語の漢字などの非 ASCII 文字を表すために使用されるワイド文字を操作できます。

標準ライブラリの使用

UTF-8 と UTF-16 間の変換については、標準ライブラリが包括的なソリューションを提供します。

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

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

以下の例この変換を示します:

#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;
}

出力:

Привет всем!

レガシー アプローチ (非推奨)

codecvt ヘッダーは C では非推奨であることに注意してください。 17. 代替ライブラリがないシステムの場合は、従来のライブラリを使用できます。アプローチ:

#include <wchar.h>

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

ただし、このメソッドは特定の Unicode 文字を正しく処理できない可能性があります。

以上がC 文字列を Wstring に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。