今天用做的东西要用Flex调用Webserice.没想到出来的中文全是乱码.
于是上网找资料.结果没有找到flex+webservice的,其他的如flex+rometeobject等等的倒是有。但是很多最终也没有说出合适的解决办法。很多人说要把encoding="utf-8"改成GBK、GB2312等等,但是都不奏效,相反原来直接写在component上的中文却成的乱码。于是我觉得,问题不是出在客户端,应该是服务端。于是我想起以前一些解决java中文乱码的问题。用经典的转换方法:
在webservice的java类里面的所有中文返回以前都用这个函数转换一下。
OK,问题解决了。
但是并没有完全解决,因为你在所有返回中文的函数里都要有这个方法。
我不知道Webservice的引擎有没有类是Servlet的Filter的东西。以前在解决网页上中文乱码的时候只要写一个Filter类在转换就行了。
于是上网找资料.结果没有找到flex+webservice的,其他的如flex+rometeobject等等的倒是有。但是很多最终也没有说出合适的解决办法。很多人说要把encoding="utf-8"改成GBK、GB2312等等,但是都不奏效,相反原来直接写在component上的中文却成的乱码。于是我觉得,问题不是出在客户端,应该是服务端。于是我想起以前一些解决java中文乱码的问题。用经典的转换方法:
//
这是一个将西欧字符转换为gb2312字符的转换方法
public static final String getGBString(String src) {
try {
return new String(src.getBytes( " ISO-8859-1 " ), " gb2312 " );
} catch (java.io.UnsupportedEncodingException e) {
return null ;
}
}
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类里面的所有中文返回以前都用这个函数转换一下。
OK,问题解决了。
但是并没有完全解决,因为你在所有返回中文的函数里都要有这个方法。
我不知道Webservice的引擎有没有类是Servlet的Filter的东西。以前在解决网页上中文乱码的时候只要写一个Filter类在转换就行了。