试试进行编码之间的转化。
String newStr = new String(oldStr.getBytes("字符集1"),"字符集2");
然后输出,oldStr和newStr就可以知道是不是乱码了。
字符集指的是gb2312,iso8859-1。
尝试一下,自己动手,丰衣足食。
String newStr = new String(oldStr.getBytes("字符集1"),"字符集2");
然后输出,oldStr和newStr就可以知道是不是乱码了。
字符集指的是gb2312,iso8859-1。
尝试一下,自己动手,丰衣足食。
String username=new String(getParameter("username").get("ISO8859_1"));
绝对可以,从数据库读出时
只需要:
String username=rs.getString("username");
不需要转马,都时中文
<%@ page contentType="text/html;charSet=GB2312" language="java" import="java.sql.*" %>
<%
request.setCharacterEncoding("GB2312" );
%>有三点需要注意:1。charSet中的S必须要大写!!!!!!!!!!必须大写!!!!!!!!
2。只要一个文件包含表单或需要向别的jsp文件传递参数,都有那段代码或include有那段代码的文件。
3。以上在WinXP+Tomcat+MySQL上测试通过。别的平台应该也没有太大问题。
首先判断数据库中的数据是什么编码;
根据数据库的编码然后进行相应的编码转换;比如:oracle的数据编码是:ISO8859_1(版本817),然后在输出的时候就要进行如下的转换:
String Str1=new String(rs.getString("aaa").getBytes("ISO8859_1"),"gb2312");2、在网页中加入如下的代码:
<%@ page contentType="text/html;charset=gb2312"%>但是这样做往往只是网页上的文字可以正常显示了,通过表单提交上去的中文仍然不能显示出来.目前的jsp&servlet中都已经支持两个方法,所以解决的办法是在每页中加入两行代码:response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");通过这样的方法,无论是表单的还是网页的都能正常显示!
2。只要一个文件包含表单或需要向别的jsp文件传递参数,都有那段代码或include有那段代码的文件。
3。以上在WinXP+Tomcat+MySQL上测试通过。别的平台应该也没有太大问题。
--------------------------------------------------------------------
我的数据库为sqlserver2000,如果charSet中的s大写,读出来的的数据就乱码,不大写S就正常!