当前位置: 技术问答>linux和unix
关于读取unicode的问题
来源: 互联网 发布时间:2016-07-14
本文导语: 在liunx下读取unicode文本文件,但是系统不支持宽字符的读取. | 读文件跟宽字符没关系 | 你得把UTF8转换成GB2312才能正常显示。 下面是一个转换的代码: int UTF8ToGB2312(char...
在liunx下读取unicode文本文件,但是系统不支持宽字符的读取.
|
读文件跟宽字符没关系
|
你得把UTF8转换成GB2312才能正常显示。
下面是一个转换的代码:
int UTF8ToGB2312(char *pInputBuf, int ulInputLen, char *pOutBuf, int ulOutLen)
{
iconv_t pHandle = 0;
int ulOld = 0;
pHandle = iconv_open("gb2312", "utf-8");
if(pHandle == -1)
{
return 0;
}
memset(pOutBuf, 0, ulOutLen);
ulOld = ulOutLen;
iconv(pHandle, &pInputBuf, &ulInputLen, &pOutBuf, &ulOutLen);
ulOutLen = ulOld - ulOutLen;
iconv_close(pHandle);
return 1;
}
下面是一个转换的代码:
int UTF8ToGB2312(char *pInputBuf, int ulInputLen, char *pOutBuf, int ulOutLen)
{
iconv_t pHandle = 0;
int ulOld = 0;
pHandle = iconv_open("gb2312", "utf-8");
if(pHandle == -1)
{
return 0;
}
memset(pOutBuf, 0, ulOutLen);
ulOld = ulOutLen;
iconv(pHandle, &pInputBuf, &ulInputLen, &pOutBuf, &ulOutLen);
ulOutLen = ulOld - ulOutLen;
iconv_close(pHandle);
return 1;
}