「MFCの基礎 - UTF-8」の版間の差分

(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, pstrUTF8, 512);
  ::MultiByteToWideChar(CP_ACP, 0, pstrShiftJIS, -1, pstrUTF16, 512);
   
   
  // UTF-16からUTF-8へ変換
  // UTF-16からUTF-8へ変換
  ::WideCharToMultiByte(CP_UTF8, 0, pstrUTF8, -1, pstrShiftJIS, 512, NULL, NULL);
  ::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};
     wchar_t pstrUTF8[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(wchar_t pstrUTF8[])
  void UTF8ToShiftJis(char pstrUTF8[])
  {
  {
     wchar_t pstrUTF16[512] = {\0};
     wchar_t pstrUTF16[512] = {\0};