日本語の文字列を として使用しておりwchar_t
、それを に変換する必要がありchar*
ます。データを失うことなく変換wchar_t*
する方法または関数はありますか?char*
3 に答える
「私は文字列を持っている」と言うだけでは十分ではありませんwchar_t
。文字列の文字がどのエンコーディングであるかも知っている必要があります。これはおそらくUTF-16ですが、確実に知る必要があります。
「に転向したい」と言うだけでは不十分ですchar
。繰り返しになりますが、文字がどのエンコーディングで表されるかを決定する必要があります。JIS?Shift-JIS?EUC?UTF-8?別のエンコーディング?
上記の2つの質問に対する答えがわかっている場合は、を使用して問題なく変換を行うことができますWideCharToMultiByte
。
必要なWideCharToMultiByte
日本語マルチバイト エンコーディングのコード ページ エンコーディング識別子を呼び出して渡す必要があります。その機能については、MDSN を参照してください。Windows では、ローカル マルチバイト セットは、ShiftJIS の MS バリエーションである CP932 です。ただし、UTF-8 を必要とする人に送信したい場合もあるでしょう。
最初に行う必要があるのは、UTF-8 や UTF-16 などの文字列エンコーディングを選択することです。次に、libiconvまたは他の同様の文字列エンコーディング ライブラリwchar_t[]
を介して選択したエンコーディングで文字列をエンコードします。