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窗口 就不能显示 中文??问题到底在哪,求指教
VM的编码参数问题,请参考文章
http://blog.sina.com.cn/s/blog_025270e90101b1db.html
另有两个建议:
1.问题标题很不清晰,建议修改成:java.awt.List中文乱码 之类的表达;
2.这种问题,自己稍微抽象一下,比如在list中中文乱码,那在其他控件中呢,如果在其他控件中正常,那么就是list的问题,如果都是中文乱码,那么就是环境问题。等等,然后根据自己抽象的结果在google中搜索,很容易可以得到答案。
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也行
引用来自“萧雨之泪”的评论
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也行