在linux下面使用服务启动tomcat(即自动启动tomcat)
用浏览器访问的时候,java程序从数据库读中文字符显示出乱码(现象是不等长度的问号),但是检查
在用8859_1解码的时候打印出getBytes值是对的在命令行手动启动或者是telnet启动都能正常显示中文,就是通过服务启动不正常,真奇怪!我使用的是linux9.0
j2sdk4_2_02
tomcat4.0.13
程序是jsp+java 用的linux自带的mysql3.(版本忘了)
读取中文用的rs.getString("chinease");
各位大虾是否遇到这种问题?
给个解决方法吧

解决方案 »

  1.   

    jsp页面里必须要有
    <%@ page contentType="text/html; charset=GBK" %>
    <%request.setCharacterEncoding("GBK");%>第一个是确保页面显示的是中文第二个是确保取到数据显示为中文
      

  2.   

    这个方法我试过了,还是不行,还是需要在命令行重启tomcat才能正常显示
    我觉得应该和中文的编码没有关系,或许是linux启动后,运行服务程序没有加载中文字符集java读到了中文的ASC码,但是没法显示,传到jsp上还是乱码各位大虾是否知道linux在什么时候导入中文字符集,非得等到登录之后吗?
      

  3.   

    linux9.0启动的时候不是能够选择语言吗?
    选简体中文试试
      

  4.   

    mysql数据库啊,和java都是采用的ISO-8859-1编码方式啊
      

  5.   

    调整服务装载顺序,将tomcat放到最后试试
      

  6.   

    我的tomcat确实是放到最后启动的
      

  7.   

    搂主在启动tomcat前必须加载中文的字符集
    export LANG=zh_CN.GB2312
    export LC-ALL=zh_CN.GB2312
    楼主可以把这两句话加到启动服务的脚本中试试,可以加载GB的中文字符集