//中文编码的转换----------------------------------------------------------
public String toGb(String uniStr){
String gbStr = "";
if(uniStr == null){
uniStr = "";
}
try{
byte[] tempByte = uniStr.getBytes("ISO8859_1");
gbStr = new String(tempByte,"GB2312");
}catch(UnsupportedEncodingException uef){
}
return gbStr;
}
public String toGb(String uniStr){
String gbStr = "";
if(uniStr == null){
uniStr = "";
}
try{
byte[] tempByte = uniStr.getBytes("ISO8859_1");
gbStr = new String(tempByte,"GB2312");
}catch(UnsupportedEncodingException uef){
}
return gbStr;
}
String uniStr = "";
if(gbStr == null){
gbStr = "";
}
try{
byte[] tempByte = gbStr.getBytes("GB2312");
uniStr = new String(tempByte,"ISO8859_1");
}catch(UnsupportedEncodingException uef){
}
return uniStr;
}
如果是win,solaris平台,一般会好写
如果是linux,那很麻烦
你先显示出来看看,能正确显示,一般插入数据库应该可以还有你的数据库的字符集,
一般用默认的即可
我用的是win2000+jdk1.2.1+tomcat+oracle8.05用的jdbc-odbc桥进行的数据库连接能够正常的从数据库中读中文信息,但不能够把汉字输入到数据库中去,用
new String(request.getParameter("xm").getBytes("ISO8859_1"),"gb2312")有时能够输入汉字进去,但一次只有一个字段能够输入一个汉字进去,输入两个便提示错误。
我试用其它一些对其它数据库的解决方法但都不太好用,希望有高手指点,十分急用
一经解决感激不仅。
不太明白你说的,一个字段只能输入一个汉字?
你的添加记录语句具体是怎么写的?
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%
//接受传参
String xm=new String(request.getParameter("xm").getBytes("ISO8859_1"), "gb2312");
//
Connection con;
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//sfzx为dsn名
String url="jdbc:odbc:sfzx";
//
con=DriverManager.getConnection(url, "sfzx", "sfzx");
stmt = con.createStatement();
stmt.executeUpdate("insert into ryb values('"+xm+"','1','1')");
%>
如果是WE8ISO8859P1
那么简单了,<%@ page contentType="text/html;charset=8859_1" %>
别的什么都不用转换,
以上是我的经验