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


 
       
       
              
         
					 
					