当前位置:  技术问答>linux和unix

字符集转换(iconv)出错求教

    来源: 互联网  发布时间:2017-03-01

    本文导语:  #include  #include  #include  #include   #include  #include  #define S 2000 void convert(const char *fromset,const char *toset,char *from,int from_len,char *to,int to_len) {  printf("%s is to be converted!n",from);  iconv_t cd,cdd;  cd=iconv_open(toset,fromset);  ch...




#include 
#include 
#include 
#include  
#include 
#include 

#define S 2000

void convert(const char *fromset,const char *toset,char *from,int from_len,char *to,int to_len)
{
 printf("%s is to be converted!n",from);
 iconv_t cd,cdd;
 cd=iconv_open(toset,fromset);
 char **from2=&from;
 char **to2=&to;
 if(iconv(cd,from2,&from_len,to2,&to_len)==-1)
  printf("Convert fail!n");
 else
  printf("Convert success!n");
 iconv_close(cd);
 return ;
}

int main()
{
 char from[]="橞"; /*如果换成“你好”就可以成功?*/
 char to[S];
 convert("GB2312","UTF8",from,strlen(from),to,S);  //把gb2312转换成utf8
 printf("%sn",to);
 return 0;
}




貌似遇到有些生僻字用那函数转换会出错,哪位朋友遇到过?紧急求教!

|
最关键的是"橞"根本就不是GB2312, 改成GB18030试试。

|
你用 locale 看看本地设置是什么,一般来说都是 UTF-8,所以:

char from[]="橞" ;

貌似本来 from 就是 UTF-8 字符,如果按 gb2312 来转应该就会报错吧


|
汗, utf8源码文件里里写一个"橞", 你知道是哪3个字节吗?

[User:root Time:21:11:31 Path:/home/liangdong/c]$ od -t x1 data.txt 
0000000 e6 a9 9e 0a
0000004
[User:root Time:21:11:37 Path:/home/liangdong/c]$ cat data.txt 


这三个字节你怎么就当作GBK了?

|
同意3楼的,gb2312表示的汉字很少,试试 GBK 或 gb18030

|

对,很多人不注意gb2312是有范围的

|
你的“橞”字是写在源代码文件里的,所以也得注意你的这个源代码文件的编码格式!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 网站英文/中文域名字符集即网站英文/中文域名可以包含哪些字符
  • linux装的是英文的,他的默认字符集是什么字符集?
  • linux下如何查看当前配置的字符集,以及更改当前字符集(在命令行状态下)
  • MySQL字符集的基本类型与统一字符集分析
  • 查询与修改Oracle字符集
  • oracle查看字符集后修改oracle服务端和客户端字符集的步骤
  • Mysql 默认字符集设置方法(免安装版)
  • Oracle中字符集的类型决定varchar2的字符长度
  • Oracle字符集修改查看方法
  • 如何修改通过locale命令查看到的系统字符集
  • debian inittab和字符集加载的问题
  • ORACLE 10G修改字符编码没有超字符集的限制
  • 如何处理客户机和服务器使用不同字符集(包括双字节字符)上传或下载文件时文件名的转换问题
  • 请教各位大侠如何察看和修改linux的默认字符集?
  • linux下安装mysql字符集转换的问题
  • .net/c#/asp.net iis7站长之家
  • 请问在kde里,怎样修改国别和字符集?
  • 急~~大字符集的汉字问题(普通汉字正常)
  • Tomcat中字符集的问题。
  • 不支持的字符集
  • linux下字符集设定


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3