第一个,我现在在为个台湾客户做程序,碰到个比较严重的编码问题。
我的环境是jsp+javabean+tomcat5+mysql5.0
因为我已事先有了数据库,而且用mysqlcc看一下,里面的字符是正常的繁体字。

public class Tochar
{
public static String getStr(String str) {
    try{
         String temp_p=str;
         byte[] temp_t=temp_p.getBytes("ISO8859_1");
         String temp=new String(temp_t); return temp;
         }
    catch(Exception e){
          } //return "";
    if(str == null)
          return "";
    else
         return str;
 }
}
这个类可以把库里的汉字取出来,变成正常的繁体字。
现在问题是如果我是从页面输入的,存到数据库都变成???
不知道怎么解决。其实我想看看,如果传到bean里的话,是不是乱码,可以好像遇到些问题。
引发问题二:我用JB编译时,会发现out.print("1111");这样的语句好像不能通过编译,不知道为什么,谁知道在JB里,应该叫什么.还有,JB我刚上手,之前我通过JB的自带的tomcat5.0编译整个站的时候,发现一些问题通不过,刚人提点,直接装了tomcat5,自己建了应用,发现可以了。那如果
out.print("1111");通过的话,我想像tomcat4一样,看bean里输出的语句,那应该在哪里可以看到了呢?

解决方案 »

  1.   

    问题一:1,连接数据库的时候DriverManager.getConnection(url)中的
       url="jdbc:mysql://localhost/数据库?user=用户名&password=密码&useUnicode=true&characterEncoding=big5";
    2,在每一页前面加上 <%request.setCharacterEncoding("GBK");%> 应该就可以啦. 
    问题二没碰到过
      

  2.   

    出:
          <form action="treeaddchk.jsp" method="post" name=myform>
    父ID:<input name="fatherid" type="text" value="<%=fatherid%>" readonly><br>
    父類名:<input name="fathername" type="text" value="<%=fathername%>" readonly><br>
    層號:<input name="grade" type="text" value="<%=grade%>" readonly><br>
    本類名:<input name="name" type="text" value="新建類"><br>
    <input name="type" type="hidden" value="add"><br>
            <input name="" type="submit" value="提交">
    </form>
    入:
    <%
    String type=Tochar.getStr(request.getParameter("type"));
    if(type.equals("add")){
    int fatherid=Integer.parseInt(Tochar.getStr(request.getParameter("fatherid")));
    int grade=Integer.parseInt(Tochar.getStr(request.getParameter("grade")));
    String name=request.getParameter("name");
    %>
      

  3.   

    页面的开头加入这个 设置你的页面本身为GBK的<%@ page contentType="text/html;charset=GBK"%> 设置完setCharacterEncoding()后 就可以不用getStr()来转了 直接用就可以啦.