#include "stdafx.h" #include "shift_jisTo_utf_8.h" #include <iostream> #include <fstream> using namespace std; wchar_t* sjisToUnicode(char* src); char* unicodeToUtf8(wchar_t* wText); void main(){ char *srcText = new char; fstream f("D:\\a.txt", ios::in | ios::binary); f >> srcText; f.close(); wchar_t *tmp = sjisToUnicode(srcText); char *dstText = unicodeToUtf8(tmp); f.open("D:\\b.txt", ios::out | ios::binary); f << dstText; f.close(); } wchar_t* sjisToUnicode(char* src) { DWORD dwNum = MultiByteToWideChar(932, 0, src, -1, NULL, 0); wchar_t *dst = new wchar_t[dwNum]; if (!dst) { delete[]dst; } MultiByteToWideChar(932, 0, src, -1, dst, dwNum); return dst; } char* unicodeToUtf8(wchar_t* wText) { DWORD dwNum = WideCharToMultiByte(65001, NULL, wText, -1, NULL, 0, NULL, FALSE); char *psText; psText = new char[dwNum]; if (!psText) { delete[]psText; } WideCharToMultiByte( 65001 , NULL, wText, -1, psText, dwNum, NULL, FALSE); return psText; }