日期:2014-05-20  浏览次数:20887 次

对于编码这样的理解是否正确
java中的字符串在内存中是以unicode的编码方式存储的,在下面的代码中,“中文”编码默认使用编译器默认的编码方式(GBK),如果想正确显示 "中文 "需要使用 "GBK "解码,再使用 "GBK "编码方式创建字符串  


代码
package   com.huawei.charset.test01;      
   
import   java.io.UnsupportedEncodingException;      
   
public   class   MainTest01        
{      
   
        public   static   void   main(String[]   args)        
        {      
                String   test   =   "中文 ";      
                try   {      
                        System.out.println(new   String(test.getBytes( "utf-8 "), "utf-8 "));      
                }   catch   (UnsupportedEncodingException   e)        
                {      
                        e.printStackTrace();      
                }      
   
        }      
   
}      


但是上面的代码在eclipse中调整编码方式,总不能打印出希望的乱码,总可以正常显示“中文”,请问这是为什么?是在eclipse中设置的不对吗?  
window-> preferences-> workspace  
与  
project-> properties-> info我都尝试了,就是不可以  
还有就是使用 "gbk "编码。查看中文十六进制D6D0   CEC4(这样却认为GBK),使用上面的代码为什么仍可以正常打印“中文”而不是乱码?  
是不是我自己理解错误,应该是使用什么编码方式编码在使用同样的编码方式解码才可以正常显示的  
到底什么地方出错了,请各位指点迷津  
还有顺便帮忙指点一下,怎么改变eclipse中的字符串编码方式  
非常感谢

------解决方案--------------------
用utf8解码再用utf8编码自然不会乱码

还有eclipse的编码只是文件本身的编码,这个只影响编译期,不影响运行期
http://blog.csdn.net/believefym/archive/2007/05/31/1633488.aspx
------解决方案--------------------
其实我觉得还是在MSDOS下,然后用javac -encoding utf-8 ***.java编译它,就没有什么问题了