text编码格式转换
现在想编程实现把txt格式的文件的编码由unicode转化为ANSI,我知道用另存为可以改变编码格式,但是我想编程实现这个功能。
[解决办法]
WideCharToMultiByte
MultiByteToWideChar
Unicode 档头 = 0xfeff
[解决办法]
用local和iconv都可以实现,这里给个用法参考:
- C/C++ code
#include <stdio.h>#include <stdlib.h>#include <locale.h>#define WSTR_LEN 5int main(int argc, char* argv[]){ wchar_t wstr[WSTR_LEN] = {0x67e5, 0x770b, 0x8be6, 0x60c5, 0x00bb}; wchar_t wc; char mbs[MB_CUR_MAX + 1]; int num; int i; setlocale(LC_CTYPE, ""); for(i = 0; i < WSTR_LEN; i++) { wc = wstr[i]; num = wctomb(mbs, wc); mbs[num] = '\0'; printf("%s\n", &mbs[0]); } return 0;}