前几天下载了一些日文原版小说,但是发现文件的编码都是JIS的,每次看都是乱码,而且文件很多没法一个个转换(平时我都是用emeditor来搞定这类事情的)于是随手写个小程序来转换编码。主要目的是吧JIS编码的文本文件转换成UTF8-BOM的。除了用来转小说以外还能转无损文件里附带的cue文件。
转换单个文件只需要吧文件拖到程序图标上就可以了,批量转换一个文件夹的方法:
命令行进入要转换的目录然后
for /r . %a in (*.txt) do jis2txt %a
以下是代码:
执行文件:http://static.icybear.net/2011/02/jis2utf8.exe
#include <stdio.h> #include <tchar.h> #include <windows.h> #define CP_932 932 char* jis2utf8(char* in,int len,int* ulen) { int wlen = MultiByteToWideChar(CP_932,0,in,len,NULL,0); wchar_t* wbuf = (wchar_t*)malloc(wlen*sizeof(wchar_t)); MultiByteToWideChar(CP_932,0,in,len,wbuf,wlen); *ulen = WideCharToMultiByte(CP_UTF8,0,wbuf,wlen,NULL,0,NULL,NULL); char* ubuf = (char*)malloc(*ulen); WideCharToMultiByte(CP_UTF8,0,wbuf,wlen,ubuf,*ulen,NULL,NULL); free(wbuf); return ubuf; } wchar_t* bakname(wchar_t* name) { static wchar_t buf[1024]; wcscpy(buf,name); wcscat(buf,L".bak"); return buf; } int main(int argc,char** argv) { wchar_t** wargs = CommandLineToArgvW(GetCommandLineW(),&argc); wprintf(L"%s\n",wargs[1]); FILE* fin = _wfopen(wargs[1],L"rb"); fseek(fin,0,SEEK_END); int len = ftell(fin); fseek(fin,0,SEEK_SET); printf("read %d bytes\n",len); char* buf = malloc(len); fread(buf,1,len,fin); fclose(fin); int ulen; char* nbuf = jis2utf8(buf,len,&ulen); FILE* fout = _wfopen(wargs[1],L"wb+"); fwrite("\xEF\xBB\xBF",1,3,fout); fwrite(nbuf,1,ulen,fout); fclose(fout); FILE* fbak = _wfopen(bakname(wargs[1]),L"wb+"); fwrite(buf,1,len,fbak); fclose(fbak); return 0; }
Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.7.62 Version/11.01
这个就是程序员的强悍之处!
想要什么软件自己写就可以!
Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.7.62 Version/11.01
靠~!真是神奇,留言还会记录游览器和系统。
早知道我骑OPERA和UBUNTU了啊。
BlackBerry8900/5.0.0.822 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/107
熊居然能看懂日文。话说这日文果然不是给人类用的。
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13
你这网站实在是搞笑,求友链。
首先是声明,即便是美国法律随意复制粘贴也有可能被民事诉讼
再有你网站注脚的CC授权又是中国大陆的
最后是icp备案
总之吐槽点太多了
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.114 Safari/534.16
友链已添加ww
Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/11.04 Chromium/10.0.648.204 Chrome/10.0.648.204 Safari/534.16
我想看看我用什么系统和浏览器~
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.15 (KHTML, like Gecko) Chrome/18.0.988.0 Safari/535.15
用Vim转码的飘过~