今天用做的東西要用Flex調(diào)用Webserice.沒想到出來的中文全是亂碼.
于是上網(wǎng)找資料.結(jié)果沒有找到flex+webservice的,其他的如flex+rometeobject等等的倒是有。但是很多最終也沒有說出合適的解決辦法。很多人說要把encoding="utf-8"改成GBK、GB2312等等,但是都不奏效,相反原來直接寫在component上的中文卻成的亂碼。于是我覺得,問題不是出在客戶端,應(yīng)該是服務(wù)端。于是我想起以前一些解決java中文亂碼的問題。用經(jīng)典的轉(zhuǎn)換方法:
//這是一個(gè)將西歐字符轉(zhuǎn)換為gb2312字符的轉(zhuǎn)換方法
public static final String getGBString(String src) 
    
try {
        
return new String(src.getBytes("ISO-8859-1"), "gb2312");
    }
 catch (java.io.UnsupportedEncodingException e) {
        
return null;
    }

}

在webservice的java類里面的所有中文返回以前都用這個(gè)函數(shù)轉(zhuǎn)換一下。
OK,問題解決了。
但是并沒有完全解決,因?yàn)槟阍谒蟹祷刂形牡暮瘮?shù)里都要有這個(gè)方法。
我不知道Webservice的引擎有沒有類是Servlet的Filter的東西。以前在解決網(wǎng)頁上中文亂碼的時(shí)候只要寫一個(gè)Filter類在轉(zhuǎn)換就行了。