当前位置: 技术问答>linux和unix
关于读取转换uinicode文件
来源: 互联网 发布时间:2015-12-21
本文导语: 存盘数据是utf-8的(windows生成,有文件头fffe,不过这个问题应该不大吧?)。代码中需要ansi/ascii的数据。我想在读文件时做一次转换,使得程序的其他部分无需改动。 研究半天发现linux的wchar是4字节~~晕了~ 文件我...
存盘数据是utf-8的(windows生成,有文件头fffe,不过这个问题应该不大吧?)。代码中需要ansi/ascii的数据。我想在读文件时做一次转换,使得程序的其他部分无需改动。
研究半天发现linux的wchar是4字节~~晕了~ 文件我该怎么读?读了又怎么转换?
另外,文件中有可能出现中文简体字符。
研究半天发现linux的wchar是4字节~~晕了~ 文件我该怎么读?读了又怎么转换?
另外,文件中有可能出现中文简体字符。
|
首先执行
iconv –f utf16 –t GB18030 utf16文件 > 新文件
然后对新文件进行操作
上述可以用system调用
iconv –f utf16 –t GB18030 utf16文件 > 新文件
然后对新文件进行操作
上述可以用system调用
|
c++中直接有对应的宽字节的输入输出流的。
相应的类型前面加上w就可以使用的。
相应的类型前面加上w就可以使用的。
|
可以看一下这篇文章
http://hailongchang.spaces.live.com/
http://hailongchang.spaces.live.com/
|
#include
#include
int main(int argc, char *argv[])
{
wchar_t cur_buff[]=L"你";
_wsetlocale(LC_ALL,L"chs"); //设置成chinese
wprintf(cur_buff);
return 0;
}
#include
int main(int argc, char *argv[])
{
wchar_t cur_buff[]=L"你";
_wsetlocale(LC_ALL,L"chs"); //设置成chinese
wprintf(cur_buff);
return 0;
}