java中用了list的add()方法把一个中文汉字显示到frame中,却不能正常显示??

俊采星驰1 发布于 2014/08/31 11:40
阅读 1K+
收藏 0

import java.awt.Frame;
import java.awt.List;
public class Test extends Frame {
 public Test(){
    List lst=new List(10);
  lst.add("你好nihao");
  this.add(lst,"North");  
}
 public static void main(String[] args) {
  Test test=new Test();
  test.setSize(300,400);
  test.setTitle("nihao中文");
  test.setVisible(true);
  //
  }
}//

我在eclipse下用utf-8编码作为默认编码   就会有这个中文 不能显示的问题,用gbk编码作默认编码就可以正常显示中文。把 源代码中的lst.add("你好nihao")改成 lst.add(new String("你好nihao".getBytes("gbk"),"gbk"))这样子,还是不能显示中文!
怀疑,eclipse 默认为 UTF-8下,(window系统 默认为gbk),Frame窗口 就不能显示 中文??问题到底在哪,求指教

加载中
0
YANWUSHU
YANWUSHU

VM的编码参数问题,请参考文章

http://blog.sina.com.cn/s/blog_025270e90101b1db.html

另有两个建议:

1.问题标题很不清晰,建议修改成:java.awt.List中文乱码  之类的表达;

2.这种问题,自己稍微抽象一下,比如在list中中文乱码,那在其他控件中呢,如果在其他控件中正常,那么就是list的问题,如果都是中文乱码,那么就是环境问题。等等,然后根据自己抽象的结果在google中搜索,很容易可以得到答案。


0
萧雨之泪

lst.add(new String("你好nihao".getBytes("gbk"),"gbk")

这句应该是lst.add(new String("你好nihao".getBytes("UTF-8"),"gbk"),你都说了是utf-8格式了,怎么能用gbk去解码呢,

还有既然后台是utf-8了,那你前端页面编码也要是utf-8,要不然肯定乱码,首先是要前后统一编码,utf-8也好,gbk也行

0
张恒强
张恒强

引用来自“萧雨之泪”的评论

lst.add(new String("你好nihao".getBytes("gbk"),"gbk")

这句应该是lst.add(new String("你好nihao".getBytes("UTF-8"),"gbk"),你都说了是utf-8格式了,怎么能用gbk去解码呢,

还有既然后台是utf-8了,那你前端页面编码也要是utf-8,要不然肯定乱码,首先是要前后统一编码,utf-8也好,gbk也行

感觉这是正解
返回顶部
顶部