JSP的乱码问题
有的书上说使用ISO-8859-1就OK了,但是文件中写了中文后,MyEclipse说这种编码对有些文字不支持,不让这么保存。
用GBK,utf-8,页面显示都是OK的,但是post get数据时,是乱码,往mysql数据库里添加数据时是乱码。
网上说了好多方法,但是我始终觉得要修改服务器配置的方法是不可取的,你租赁的空间还要让人家给你改配置啊??
好的方法应该是使用程序控制编码,这样才可以摆脱运行环境的限制
post get乱码:
request.setCharacterEncoding("utf-8"); //中间的字符集根据实际情况自己改改
String name = request.getParameter("name");
String content = request.getParameter("content");
String content = request.getParameter("content");
打印一下,发现是正确的了,呵呵
mysql乱码
使用
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd+"&useUnicode=true
&characterEncoding="+charset;
连接数据库
我自己封装了一下
public void connect(/*数据库用户名*/String userName,/*密码*/String userPasswd,/*数据库名*/String dbName,/*使用的字符集*/String charset)
{
try
{
//驱动程序名
//String driverName="com.mysql.jdbc.Driver";
//连结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd+"&useUnicode=true
{
try
{
//驱动程序名
//String driverName="com.mysql.jdbc.Driver";
//连结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd+"&useUnicode=true
&characterEncoding="+charset;
connection=DriverManager.getConnection(url);
statement = connection.createStatement();
}
catch(SQLException ex)
{
out.println("Connect Error: " + ex.getMessage());
}
}
connection=DriverManager.getConnection(url);
statement = connection.createStatement();
}
catch(SQLException ex)
{
out.println("Connect Error: " + ex.getMessage());
}
}
JSP文件中使用mysql.connect("root", "", "test","utf-8");的形式连接数据库,这样添加的数据就不是乱码了,呵呵
一个很奇怪的问题
不管页面和mysql使用何种字符集,连接mysql是也不指定使用的字符集,select出来的结果不经处理直接显示,居然不是乱码,很诡异^_^、、、
another question:为什么datetime类型的域,使用ResultSet.getstring取出来后,后面多了一个".0"?也就是说数据库中的"2007-04-20"取出来后显示为"2007-04-20.0",why?
最新评论