我在Java应用程序中,使用JTextField时,需要验证用户输入合法性,使用了TextField.setDocument(plainDocument)方法,调用PlainDocument的insertString(int offset,String s,AttributeSet set)方法,插入一串含有中文的字符串后,字符串显示时,中文被显示成了小方块,其他字符显示正常,将显示在文本框中的乱码(小方块)拷贝到记事本中显示,却能够正常显示,有谁知道是什么原因吗?

解决方案 »

  1.   

    应该是你的JDK的问题,在%java_home%/lib目录中有很多文件类似于font*.*的文件,看看你的有没有类似于font*zh*的文件,没有的话需要重新下载一个包含了中文字体的JDK
      

  2.   

    是字符集的错误,
    先把字符串TOBYTE(),在显示时TOCHAR(‘GB2312’,STRINGLINE)
      

  3.   

    楼上说的对,是编码问题.
    中文问题的确令人头疼,尤其是搞JSP动态网页时.
      

  4.   

    eprint自定义打印是一个页面套打工具.它直接在IE浏览器中可视化的设计各种复杂的打印模版,
    能够解决在IE浏览器中打印各种复杂的中国式报表及票据。详见: http://218.30.103.110:8080/eprint/index.htm
    方成eform表单开发,纯BS结构.100%开放源码.可以在 http://218.30.103.110:8080/eform/index.html 在线试用.    webprint是一个基于表格的页面打印解决方案.先将要打印的数据及样式组织
    到一个HTML的TABLE元素中, 然后将这个TABLE元素传给webprint,实现分页打印预
    览,出打印对话框打印和直接打印。
      

  5.   

    collar_bird(可乐) :能否详细说一下解决方法,你说的函数在JAVA里面根本没有啊,不知道如何设置一个文本框中字符串的编码方式,能不能详细写明一下,你说的函数不是JAVA里面的吧?
      

  6.   

    http://tb.blog.csdn.net/TrackBack.aspx?PostId=456050