Linux下的iconv函数
在做utf-8编码转成unicode,使用了iconv函数
下面是代码
是正确的,不过就是位置需要调下。
可是为什么每次运行的时候,开始两个都是ff和fe了?求大虾解释下,求教
下面是代码
#ifndef CODECONVERTER_H
#define CODECONVERTER_H
#include <iconv.h>
#include <iostream>
class CodeConverter
{
public:
CodeConverter(const char *from,const char *to) {
id = iconv_open(to,from);
}
~CodeConverter() {
iconv_close(id);
}
int converter(char *input,size_t &inlen,char *output,size_t &outlen) {
char **in = &input;
char **out = &output;
return iconv(id,in,&inlen,out,&outlen);
}
private:
iconv_t id;
};
#endif // CODECONVERTER_H
#include <iostream>
#include "CodeConverter.h"
#include <cstring>
using namespace std;
int main()
{
char *msg = "你好";
char out[20] = {'\0'};
size_t outl = sizeof(out);
size_t inl = strlen(msg);
CodeConverter converter("utf-8","unicode");
int r = converter.converter(msg,inl,out,outl);
if ( r != -1) {
// cout <<"len:"<< inl <<" "<<outl <<"unicode:"<< out << endl;
for (int j = 0;j < 20 - (int)outl;++j) {
cout << j << " : " << hex <<((unsigned short int)out[j] & 0x00ff)<< '\n';
}
}
是正确的,不过就是位置需要调下。
可是为什么每次运行的时候,开始两个都是ff和fe了?求大虾解释下,求教
...全文
相关推荐
linux系统上支持php的 iconv()函数的方法
iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。
iconv()函数的用法
iconv()函数的用法,字符编码间的转换
linux字符集编码指南
linux下的字符编码转换方法。教你如何实现Linux下的编码转换。
linux字符编码转换
描述了linux各种字符编码的转换方法,包括详细的例子。
linux iconv方法的使用
使用iconv方法进行编码转换。在windows平台下面可以正常的工作(本地环境使用的win7),但是在linux环境下面iconv总是返回false(测试环境使用的linux)。



