public class Test{
   public static void main(String[] args){
       for(int i=0;i<args.length;i++){
           System.out.println(""+args[i]);
        }
      System.out.println("\u5C01\u53D1");
   }
}请问传参数 java Test  \u5C01\u53D1
和  直接 java Test
为什么结果不一样?
什么时候会把unicode转换过来再输出到屏幕呢?

解决方案 »

  1.   

    一个是在编译期
    一个是运行期
    编译时会按照工具指定的字符集编码把字符串“\u5C01\u53D1”转化为相应的字符串
    你的IDE工具可能设置的是UTF-8
    而运行期接收的参数“\u5C01\u53D1” 只是一串字符串而已 不会做相应的转化
      

  2.   

    感谢楼上的回答
    我如果想在运行期转化 怎么办?
    又没有相关的api之类的?
      

  3.   

    你可以使用 java Test 封发字符集编码的问题看起来似乎很简单
    但是完整的用例要考虑到很多地方
    你的例子分别涉及到
    .java编辑环境
    .java编译环境
    .class运行环境
    要确保每一个步骤的字符集编码都要明确统一 
    否则的话就会出现乱码或不想要的结果