Linux C转码
来源:互联网 发布:tiffen dfx mac 破解 编辑:程序博客网 时间:2024/06/02 00:28
说到Linux C下的转码就不得不提到iconv这个函数。
还是用代码说话,我会将注释写的详细些。
#include <stdio.h>
#include <iconv.h>
//从UTF-8转到GBK,先定义两个宏,万一以后有变动修改下这里即可。
#define ICONVFROM “UTF-8”
#define ICONVTO “GBK”
/*
iconv需要一个iconv_t类型的变量作为转码标识
这里我们申请一个全局静态变量
*/
static iconv_t cnv;
/*
将转码的初始化步骤封装成函数
返回 -1 表示失败,返回 0表示成功
*/
int iconvOpen( )
{
if ( ( cnv = iconv_open( ICONVTO,ICONVFROM ) ) != (iconv_t) -1 ) {
fprintf( stderr, “转码初始化失败” );
return -1;
}
return 0;
}
//将转码的结束工作也封装成函数
void iconvClose()
{
iconv_close( cnv );
}
/*
将转码过程封装成函数
返回 -1 表示失败,返回 0表示成功
*/
int _iconv(char * WordBefore, char * WordAfter)
{
size_t i,j;
int r;
/*
iconv的五个参数的意义分别是:
1、 iconv_open申请的转码标识
2、 转码前的内容
3、 转码前内容的长度,如果这是存放在数组中,那么将数组的长度传过来即可。
4、 转码后内容的存放区
5、 转码内容的长度(注意是“转码内容”而不是“转码后内容存放区”的长度)
其中第5个参数一般不会用到,但还是知道比较好。
*/
if ( ( r = iconv( cnv, &WordBefore,&i, &WordAfter, &j ) ) < 0 ) {
fprintf( stderr, “转码失败\n” );
return -1;
}
return 0;
}
- Linux C转码
- linux & C
- linux c
- linux c
- linux C
- linux c
- linux c
- linux-c
- Linux C
- linux c
- Linux C
- Linux C
- Linux C
- linux c
- Linux C
- Linux C
- linux C
- Linux c bronk.c
- ORA-1219数据未打开:仅允许在固定表或视图查询
- Linux C 下的大文件操作
- Hibernate.initialize(Obj)用法
- F5负载均衡之检查命令的说明
- ARM、DSP、FPGA的技术特点和区别
- Linux C转码
- 怎样使用SSH不输入密码登录远端服务器?
- VMware一共提供三种上网配置:桥接、NAT和Hostonly.
- C++复习笔记(1)
- JQ中的“对象不支持此方法或属性”
- yii cannot find the requested view
- cookie总结
- 这两个月
- 兼容IE和火狐的值改变事件