ajax乱码的一种解决方法
来源:爱站网时间:2019-06-12编辑:网友分享
爱站技术频道小编在Internet上的找了许多解决方案都基于PHP、JSP,其实改变这些编码方法相对简单。但是我们的服务器是一个用C语言编写的CGI程序,在嵌入式系统中使用,所有输出都使用printf。
爱站技术频道小编在Internet上的找了许多解决方案都基于PHP、JSP,其实改变这些编码方法相对简单。但是我们的服务器是一个用C语言编写的CGI程序,在嵌入式系统中使用,所有输出都使用printf。
最后找到一个在linux下的头文件<iconv.h>,它实现了各种编码的转换。使用方法如下:
int Gb2312toUtf8(char *inbuf,char *outbuf)
{
#ifdef ISCHANGE
iconv_t cd;
int inlen,outlen;
inlen=strlen(inbuf);//得到输入字符串的长度
outlen=100;//输出字符串长度。
char **pin=&inbuf;
char **pout=&outbuf;
cd=iconv_open("utf-8","gb2312");//设置为GB2312转为UTF-8
if (cd==0) return -1;
memset(outbuf,0,outlen);
if(iconv(cd,pin,&inlen,pout,&outlen)==-1)
return -1;
iconv_close(cd);
#else
Strcpy(outbuf,inbuf);
#endif
return 0;
}
这样把要输出的内容经过转换后再输出,就不会出现乱码了。
但是,第一次的页面输出和后面AJAX请求的输出又是同一段代码,转换后第一次输出又出现了乱码,所以我加了一个宏定义,在编译AJAX输出的程序时,加出了#define ISCHANGE 1,这样就可以正确的显示了。(其实应该有更好的解决方法,请知道的朋友告诉我。Luoliang28@126.com)
看完爱站技术频道小编介绍的ajax乱码的一种解决方法之后,相信各位朋友们,都已经搞清楚了这个问题了吧,总之,希望大家可以学会更多的技术知识!
上一篇:一个封装的AJAX类
下一篇:Ajax 程序开发中常见问题