字符串的编码方式转换问题???

llf_hust 2005-08-12 07:31:09
我在VC++里面写了个程序,这个程序里面有两个系统函数
MultiByteWideChar(CP_UTF8,0,...);
WideCharToMultiByte(CP_UTF8,0,...);
现在我要把该程序移值到LINUX操作系统下面,但不知道该如何实现。 哪们高手帮帮我呀
...全文
221 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdhyj 2005-08-27
  • 打赏
  • 举报
回复
用man iconv查看它接受哪些编码方式的转换就OK了
llf_hust 2005-08-27
  • 打赏
  • 举报
回复
知道是调用那个函数,但里面的编码对应哪个才对呀
gdhyj 2005-08-26
  • 打赏
  • 举报
回复
只调用这一个函数就行了
gdhyj 2005-08-26
  • 打赏
  • 举报
回复
上面的就是我在linux下字符编码转换的代码呀
llf_hust 2005-08-13
  • 打赏
  • 举报
回复
up
llf_hust 2005-08-12
  • 打赏
  • 举报
回复
MultiByteWideChar(CP_UTF8,0,...);
WideCharToMultiByte(CP_UTF8,0,...);
MultiByteWideChar(CP_ACP,0,...);
WideCharToMultiByte(CP_ACP,0,...);
我的程序里面一共用到了这四个编码转换函数,难道都可以用以上的方法把他们移植到LINUX下面去吗?????
gdhyj 2005-08-12
  • 打赏
  • 举报
回复
#include <iconv.h> /*编码转换*/

//代码转换:从一种编码转为另一种编码
int code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen)
{
iconv_t cd;
int rc;
char **pin = &inbuf;
char **pout = &outbuf;

cd = iconv_open(to_charset,from_charset);
if (cd==0) return -1;
memset(outbuf,0,outlen);
if (iconv(cd,pin,&inlen,pout,&outlen)==-1) return -2;
iconv_close(cd);
return 0;
}


调用:

code_convert("GB2312", "UNICODE", (char *)note, nLength, buf2, 255);
ghtsao 2005-08-12
  • 打赏
  • 举报
回复
mbstowcs wcstombs

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧