WindowsでSJISベースで汲まれた文字表示ルーチンをiOS/Androidで動作させるときに毎度変換が必要になるため、Windowsに依存しない変換方法をメモ。
#include <locale.h> void TestProg() { char *mbstbl = { "あ" //82a0 SJIS }; wchar_t wcstbl[32] = { L"あ", //4230 UTF-8 }; setlocale(LC_ALL, "JPN"); // wchar_t tblw[32]; // mbstowcs(tblw, mbstbl, 32); //utf-8 -> sjis char tblm[32] = {0}; size_t ret = wcstombs( tblm, wcstbl, 32); //tblm = 82a0 ->sjis //sjis ->utf16 wchar_t tblm2[32] = { 0 }; ret = mbstowcs(tblm2, tblm, 32); //4230 sjis ->utf16 tblm2[0] = 0x00; ret = mbstowcs(tblm2, mbstbl, 32); //4230 sjis ->utf16 ret = wcstombs(tblm, tblm2, 32); //8xa0 utf16 -> sjis }