OSDN Git Service

Convert source codes' encoding to UTF-8.
[ffftp/ffftp.git] / encutf8 / encutf8.cpp
1 // encutf8.cpp : \83R\83\93\83\\81[\83\8b \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82µ\82Ü\82·\81B
2 //
3
4 #include "stdafx.h"
5
6
7 int _tmain(int argc, _TCHAR* argv[])
8 {
9         FILE* fpIn;
10         FILE* fpOut;
11         fpos_t Length;
12         int InLength;
13         char* pInBuffer;
14         int UTF16Length;
15         wchar_t* pUTF16Buffer;
16         int OutLength;
17         char* pOutBuffer;
18         _tsetlocale(LC_ALL, _T(""));
19         if(argc != 3)
20         {
21                 _tprintf(_T("\83}\83\8b\83`\83o\83C\83g\95\8e\9a\81i\83R\81[\83h\83y\81[\83W932\82Ü\82½\82ÍShift JIS\81j\82Å\8f\91\82©\82ê\82½\83e\83L\83X\83g\83t\83@\83C\83\8b\82ðUTF-8\82É\83G\83\93\83R\81[\83h\82µ\82Ü\82·\81B\n"));
22                 _tprintf(_T("\83R\83}\83\93\83h\83\89\83C\83\93\n"));
23                 _tprintf(_T("encutf8 [in] [out]\n"));
24                 _tprintf(_T("[in]    \8c³\82Ì\83\\81[\83X\83t\83@\83C\83\8b\82Ì\83t\83@\83C\83\8b\96¼\n"));
25                 _tprintf(_T("[out]   \95Û\91\90æ\82Ì\83t\83@\83C\83\8b\96¼\n"));
26                 return 0;
27         }
28         fpIn = _tfopen(argv[1], _T("rb"));
29         if(!fpIn)
30         {
31                 _tprintf(_T("\83t\83@\83C\83\8b\"%s\"\82ª\8aJ\82¯\82Ü\82¹\82ñ\81B\n"), argv[1]);
32                 return 0;
33         }
34         fseek(fpIn, 0, SEEK_END);
35         fgetpos(fpIn, &Length);
36         fseek(fpIn, 0, SEEK_SET);
37         InLength = Length / sizeof(char);
38         pInBuffer = new char[InLength];
39         UTF16Length = InLength;
40         pUTF16Buffer = new wchar_t[InLength];
41         OutLength = InLength * 4;
42         pOutBuffer = new char[OutLength];
43         if(!pInBuffer || !pUTF16Buffer || !pOutBuffer)
44         {
45                 _tprintf(_T("\83\81\83\82\83\8a\82ª\8am\95Û\82Å\82«\82Ü\82¹\82ñ\81B\n"));
46                 return 0;
47         }
48         fread(pInBuffer, 1, InLength, fpIn);
49         fclose(fpIn);
50         fpOut = _tfopen(argv[2], _T("wb"));
51         if(!fpIn)
52         {
53                 _tprintf(_T("\83t\83@\83C\83\8b\"%s\"\82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ\81B\n"), argv[2]);
54                 return 0;
55         }
56         fwrite("\xEF\xBB\xBF", 1, 3, fpOut);
57         UTF16Length = MultiByteToWideChar(CP_ACP, 0, pInBuffer, InLength / sizeof(char), pUTF16Buffer, UTF16Length);
58         OutLength = WideCharToMultiByte(CP_UTF8, 0, pUTF16Buffer, UTF16Length, pOutBuffer, OutLength / sizeof(char), NULL, NULL);
59         fwrite(pOutBuffer, sizeof(char), OutLength, fpOut);
60         fclose(fpOut);
61         return 0;
62 }
63