跪求一解决方法:linux中已知某汉字,要取得它的unicode该怎么办?

hjlandxk 2006-01-19 01:17:58
有源码跪谢。。
没有请给个思路,急了好几天了。影响过年能不能回家
小弟谢谢各位大虾了。。。
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
asphp 2006-01-23
  • 打赏
  • 举报
回复
哎,看看以前写的代码,真的觉得自己远不如从前了
asphp 2006-01-23
  • 打赏
  • 举报
回复
给你一段思路
int ConvertAnsi(WCHAR* pwchar,unsigned char* pchar,int* wc_len,int* c_len,int conv_type)
{
int deslen;
int buflen;

char* ppwchar=(char*)pwchar;
char* ppchar=pchar;

if(conv_type==ANSI_TO_UNICODE)
{
iconv_t cd;
buflen=*wc_len;

if((cd = iconv_open("unicode","gb2312")) == (iconv_t)-1)
return -1;

if((deslen=iconv(cd,&ppchar,c_len,&ppwchar,wc_len)) == (size_t)-1)
{
return -1;
}

/*i_wlen为空闲区间大小*/
iconv_close(cd);
return (buflen-*wc_len)/2;
}
else
{
iconv_t cd;
buflen=*c_len;
if((cd = iconv_open("gb2312","unicode")) == (iconv_t)-1)
return -1;
if((deslen=iconv(cd,&ppwchar,wc_len, &ppchar,c_len)) == (size_t)-1)
{
PRINTDBG("%d,%s,%d,%d",errno,strerror(errno),*c_len,*wc_len);
return -1;
}
iconv_close(cd);
return buflen-*c_len;
}
}
asphp 2006-01-23
  • 打赏
  • 举报
回复
能不能先把它分开成两个unsigned char,然后由第2个char*2+第一个char
转转耳朵 2006-01-20
  • 打赏
  • 举报
回复
我也只能给个思路了, 具体要你自己去查, 我记不得了, 用iconv

23,120

社区成员

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

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