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
}