変換の関数はないのでテーブルデータを用意して
シフトJISの文字列を数値データ(UInt16 sjis)として与えて
UTF-8の1文字を返す物を作って使用しています。
具体例を書いて見ました。
データを追加されれば第2水準までできますが
分割して別ファイルにされないと ソースリストの行が長すぎた場合は
エディタの反応が劇的に遅くなるので注意が必要です。
UInt16[] SJIS_0 = {
0x824F, // 0
0x8250, // 1
0x8251, // 2
0x8252, // 3
0xffff //end code
};
string[] UTF8m_0 = {
"0", // 0
"1", // 1
"2", // 2
"3", // 3
};
/*
コードが必要ならこーいう感じのデータを作る
UInt32[] UTF8_0 = {
0xEFBC90, //0
0xEFBC91, //1
0xEFBC92, //2
0xEFBC93, //3
};
*/
string SJIS_TO_UTF8m(UInt16 sjis)
{
int i = 0;
string utf8 = "";
if (sjis <= 0)
{
return "";
}
////////////////////////////////////
i = 0;
while (SJIS_0[i] != 0xffff)
{
if (SJIS_0[i] == sjis)
{
utf8 = UTF8m_0[i];
return utf8;
}
i++;
}
return "";
}