你如果这样可以吗?
System.out.println(new String(str.getBytes("ISO8859_1"),"GBK"));

解决方案 »

  1.   

    如果在JavaBean中声明:
    String str="东北";
    要达到下面的效果 我怎么办:在JavaBean进行转换,用System.out.println(str);输出
    并且输出的结果不是乱码。我用了以下方法也不行。
    str=new String(str.getBytes("ISO8859_1"));
    不好意思我着急 语句不通过
    :)
    请多包涵!
      

  2.   

    public String tochinese(String str)
               {
                  try
                  {
                       if (str==null)
                       {
                               return "";
                       }
                       else
                       {
                               str=new String(str.getBytes("ISO8859_1"),"GBK");
                               return str;
                       }
               }catch (Exception e){return null; } }String str="东北";
    str=tochinese(str);
      

  3.   

    To :
    8088 这种方法我试过了 不行的,要不你在 javabean中试试
      

  4.   

    public class test{public static String tochinese(String str)
               {
                  try
                  {
                       if (str==null)
                       {
                               return "";
                       }
                       else
                       {
                               str=new String(str.getBytes("ISO8859_1"),"GBK");
                               return str;
                       }
               }catch (Exception e){return null; } }public static void main(String[] args){
    String str="东北";
    str=tochinese(str);
    System.out.println(str);
    }
    }编译的时候用javac test.java -encoding 8859_1   运行用java test 试试
      

  5.   

    没明白你的意思,我在我的BEAN里,
    String aa="东北";
    System.out.println(aa);
    可以看到输入的是“东北”,没有乱吗啊。
      

  6.   

    Don't try to use ISO8859_1. 
     
                  String temp_p=str;
                  byte[] temp_t=temp_p.getBytes("GBK");
                 String temp=new String(temp_t,"GBK");
                 return temp;
      

  7.   

    To 8088 要不把你的代码贴出来 谢谢:
    To nc201 你说的 javac test.java -encoding 8859_1   运行用java test 
      我不怎么会用这个 :)不好意思。能不能只在javabean中实现。我用你写的代码 输出的也是乱码。是不是我有什么包或者别的没有引用啊。
      

  8.   

    To ChunLei 我的 问题解决了
    谢谢!
      

  9.   

    最后我想问一 下 什么时候用GBK 什么时候用"ISo8859_1"?
      

  10.   

    晕,没有乱码就不用转换,再转换成gbk好像要报错,
      

  11.   

    To nc201
    我问的就是你上面所告诉我的啊。只是你说的那种方法我没用过所以有的不明白啊 。
    (javac test.java -encoding 8859_1   运行用java test )public static String tochinese(String str)
               {
                  try
                  {
                       if (str==null)
                       {
                               return "";
                       }
                       else
                       {
                               str=new String(str.getBytes("ISO8859_1"),"GBK");
                               return str;
                       }
               }catch (Exception e){return null; } }public static void main(String[] args){
    String str="东北";
    str=tochinese(str);
    System.out.println(str);
    }他输出的结果有乱码啊,我就是为了解决这个问题。
      

  12.   

    最后我想问一 下 什么时候用GBK 什么时候用"ISO8859_1"?
    过一会马上结分
    谢谢各位! 参与者有都有
      

  13.   

    如果你用
                  String temp_p=str;
                  byte[] temp_t=temp_p.getBytes("GBK");//把temp_p按GBK的格式读出
                 String temp=new String(temp_t,"GBK");//然后又把temp_t转换成GBK的格式
                 return temp;这就相当于什么都没有做,你要的是这种结果??
    8859_1与GBK都是文件的编码方式,中文WINDOWS对文件的默认编码方式是GBK,而LINUX一般是8859_1,所以(就我刚才给你的那段程序而言),如果你用javac test.java,那么对文件的编译就是用GBK编码,所以“东北”这两个字的编码方式就是GBK,再所以,你对编码方式是GBK的字符用8859_1的格式来读在转换成GBK就不正确。因此,我要你用javac test.java -encoding 8859_1的这个命令的意思就是制定文件编码的方式为8859_1,所以,这时“东北”两个字的编码方式就是8859_1,再进行上面的转换就是正确的了够详细了吧
      

  14.   

    我现在明白他们之间的用途了。但是 
    String temp_p=str;
     byte[] temp_t=temp_p.getBytes("GBK");//把temp_p按GBK的格式读出
     String temp=new String(temp_t,"GBK");//然后又把temp_t转换成GBK的格式
        return temp;
    这么做了 他就不输出乱码了啊。那我想把我转换过的字符放在sesssion中,我在另一个javabean中取得sesssion中的数值。这就是我做这项工作的目的。那你说我该怎么做,如果按你说的那样做的话,是否能保证我在另一个bean中取得的不是乱码?
    请指点。今天在你那学到不少东西。
      

  15.   

    你把你的方法改成
    public static String ex_chinese(String str)
    {
      return str;
    }试试看