這篇文章給大家分享的是有關怎么解決ajax亂碼問題的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創新互聯歡迎聯系:18980820575,為您提供成都網站建設網頁設計及定制高端網站建設服務,創新互聯網頁制作領域10年,包括不銹鋼雕塑等多個行業擁有豐富的網站制作經驗,選擇創新互聯,為網站保駕護航。
上網找了一些資源,才弄明白這是編碼的問題,我的服務器端發送過來的數據是GB2312編碼的,而AJAX把接收到的數據都當成UTF-8編碼的。
網上的很多解決方法都是服務器端基于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,這樣就可以正確的顯示了。
感謝各位的閱讀!關于“怎么解決ajax亂碼問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
標題名稱:怎么解決ajax亂碼問題
本文鏈接:http://vcdvsql.cn/article14/pdsjge.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、網站導航、企業網站制作、動態網站、軟件開發、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯