不能显示汉字? 是不显示还是显示乱码?

解决方案 »

  1.   

    首先,不能显示汉字常见两种情况:
    1、乱码,你取数据时如果一直当它是 String 是不会碰到乱码的。
    2、如果你在源码中 hard-code 一些汉字常量字符串,记得在编译这个源代码时也应该用同样的字符集,这个 Eclipse 这样的开发工具本身已经考虑到这点了,不过,可能有些人在各种情况下把源文件的字符集设置改了,导致 eclipse 没意识到你这个文件中的字符集与它传递给 Java 编译器的字符集参数不一致(这种情况下有时编译器会发现,当这个字的编码在指定的字符集中根本不存在时会报告,但如果刚好也存在但是另外一个汉字时并不报错,只是显示的汉字不是你期望的)。
    3、另一种情况不是乱码是字体不支持汉字显示,如果你在 Windows 上看到的汉字是一个个的方框就是这种情况,汉字数据本身没有问题,但你的当前组件选定的字体不支持汉字时就是这样,它用这个汉字的内部编码到这个字体库中去找时却没找到这个字符应该显示成什么样的图案,因此这时候它就直接显示一个方框了。如果你的不是方框而是你从另一个地方取数据后显示出来是问号就是你传递给 myString.getBytes(encoding) ; 或 new String(bytes, encoding) 这些调用中使用的字符集参数 encoding 不正确。