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

怎样用printf()正常打印出utf8的中文?

    来源: 互联网  发布时间:2015-12-03

    本文导语:  uft8编码的中文直接用printf打印是乱码,请问如何转换成可打印的ansi编码?据说可以用wcstombs(),mbstowcs(),和setlocale(),可以说说这几个函数怎样用么?setlocale函数的第二个参数有哪些选项? | #include  ...

uft8编码的中文直接用printf打印是乱码,请问如何转换成可打印的ansi编码?据说可以用wcstombs(),mbstowcs(),和setlocale(),可以说说这几个函数怎样用么?setlocale函数的第二个参数有哪些选项?

|
#include 



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 -1;
//printf("pin is %d,pout is %dn",inlen,outlen);
iconv_close(cd);
return 0;
}
//UNICODEÂëתΪGB2312Âë
int u2g(char *inbuf,int inlen,char *outbuf,int outlen)
{
return code_convert("utf-8","gb2312",inbuf,inlen,outbuf,outlen);
}

|
如果是 zh_CN.UTF-8应该不用吧,如果是 zh_CN.GB2312 以上的 可以用 iconv 转换成 gb2312 以上的字符集 然后 printf();

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












  • 相关文章推荐
  • java命名空间java.io类console的类成员方法: printf定义及介绍
  • 为什么会我调试程序的时候出现“printf.c: 没有那个文件或目录. in printf.c“
  • java命名空间java.io类printstream的类成员方法: printf定义及介绍
  • UDP包何printf?
  • java命名空间java.io类printwriter的类成员方法: printf定义及介绍
  • Linux 中的printf、open、close
  • Python中类似printf的字符串格式化详解
  • [求解]关于printf 与 ++ --的疑惑
  • printf的静态库在哪??
  • Eclipse对printf()不能输出到控制台的快速解决方法
  • printf显示的问题.
  • printf的奇怪现象
  • linux printf文字编码设定?
  • 如何使用ar命令检查在标准的C库中收藏了多少与printf相关的函数
  • 如何在printf()中指定字段的宽度后,左端的用数字0而不用空格补全
  • 送分题,关于printf输出格式的问题。
  • 问个printf的问题
  • UART_printf在哪里?
  • printf到指定终端
  • ld 报undefined reference to `printf'求解决方法
  • printf的问题 为什么没有输出


  • 站内导航:


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

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

    浙ICP备11055608号-3