12,925
回編集
細 (Wiki がページ「文字列をUTF-8へ変換する方法(MFC)」を「MFCの基礎 - UTF-8」に、リダイレクトを残さずに移動しました) |
|||
9行目: | 9行目: | ||
char *pstrShiftJIS = "文字列のテスト"; | char *pstrShiftJIS = "文字列のテスト"; | ||
wchar_t pstrUTF8[512]; | wchar_t pstrUTF16[512] = {\0}; | ||
char *pstrUTF8[512] = {\0}; | |||
// Shift-JISからUTF-16へ変換 | // Shift-JISからUTF-16へ変換 | ||
::MultiByteToWideChar(CP_ACP, 0, pstrShiftJIS, -1, | ::MultiByteToWideChar(CP_ACP, 0, pstrShiftJIS, -1, pstrUTF16, 512); | ||
// UTF-16からUTF-8へ変換 | // UTF-16からUTF-8へ変換 | ||
::WideCharToMultiByte(CP_UTF8, 0, pstrUTF8, -1, | ::WideCharToMultiByte(CP_UTF8, 0, pstrUTF8, -1, pstrUTF16, 512, NULL, NULL); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
23行目: | 24行目: | ||
{ | { | ||
wchar_t pstrUTF16[512] = {\0}; | wchar_t pstrUTF16[512] = {\0}; | ||
char pstrUTF8[512] = {\0}; | |||
// UTF-16へ変換する前に、文字列を代入するバッファのサイズを確認する | // UTF-16へ変換する前に、文字列を代入するバッファのサイズを確認する | ||
45行目: | 46行目: | ||
以下の例では、UTF-8からShift-JISへの変換を関数として定義している。<br> | 以下の例では、UTF-8からShift-JISへの変換を関数として定義している。<br> | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
void UTF8ToShiftJis( | void UTF8ToShiftJis(char pstrUTF8[]) | ||
{ | { | ||
wchar_t pstrUTF16[512] = {\0}; | wchar_t pstrUTF16[512] = {\0}; |