中文乱码问题 中文问题,不仅仅是网页上的问题,和数据库,jdbc都有关系,你干吗不试试换个jdbc驱动的版本,或者查查数据库呢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我就是往数据库中写入数据,之后数据库中就成为了乱码了。当然,读出来后自然就是乱码了。换个jdbc版本,哪里有下载的呀。我不知道。我是新手。 试试去掉<%@ page contentType="text/html;charset=gb2312"%>和<%request.setCharacterEncoding("gb2312");%>然后执行你的页面之后看看数据库里的中文是否还是乱吗 将向数据库写的数据进行编码转换就可以了!try{ String str=new String(yourStr.getBytes("8859_1"),"gb2312");}catch(Exception g){} steveyue(约翰岳)你的方法不对。 j2nix(八月) 刚刚看完。有点晕晕的。不知道讲的是什么。 meluan(luan) yourstr是什么变量。没有定义过的呀。 不用上面的那么麻烦,因为我是菜鸟。java的还不会,所以我找了CSDN上一位大侠的解决办法你就在第一行JSP页面上加这四行<% response.setContentType("text/html;charset=gbk"); request.setCharacterEncoding("gbk");%><%@ page import="java.sql.*" %><%@ page contentType="text/html;charset=gbk"%>一定有效!^-^ 最好所有和数据库提取的JSP页面上都加上这四行代码!这样输入输出都是正常字符了。 把你的代码给我看看,还有你的数据库用的是什么,我的msn:[email protected] 加入gbk,为什么。这是什么编码方法。不太清楚。我用的是SQLServer2000+SP3。 你换成用gb2312也可以,但GBK包含的字符集比2312还要多,出现乱码的机会更少!! 乱码问题,很正常的!在存入数据库之前执行一下转换:str = str.getByte('gb2312');这样存入数据库的文字就不会是乱码了;取出来之前最好再转换一次;你可以把字符转换写成一个bean,这样最好了;还有声明一下:不知道怎么解决问题的不要在这里乱说话,误人子弟! 在存入数据库之前执行一下转换:str = str.getByte('gb2312');这样存入数据库的文字就不会是乱码了;取出来之前最好再转换一次;你可以把字符转换写成一个bean,这样最好了;还有声明一下:不知道怎么解决问题的不要在这里乱说话,误人子弟!我没有象你那样转化..因为不必那么麻烦..可是我的不是乱码,至于字符转化弄的象你那么麻烦,还要写成一个bean,我看你才是不知所云呢,字符乱码可能是多种原因(我就遇到过由于apache配置不对造成过,jdbc驱动不对造成过),未必人家遇到的就是和你遇到的是一个原因,你凭什么说别人在误人子弟. 再说,你说得根本也不着边际啊,你要是说对了还行,str.getByte('gb2312');返回的是什么类型的东西?是byte[],老大,你这种方法能转化字符串?str=str.getByte('gb1312');就这句话,恐怕连编译都通不过...嘿嘿........... 让我来告诉你.....如果你用servlet,就在servlet的dopost方法最前面加上如下语句: String clientLanguage = request.getHeader("Accept-Language"); if(clientLanguage != null && clientLanguage.compareToIgnoreCase("zh-cn") == 0){ request.setCharacterEncoding("GBK"); response.setContentType("text/html;charset=GBK"); }这样完全不用考虑存储数据库的转化与提取的转化;如果你没有用servlet,那么就你做一个方法如下: public static String getStr(String str) { try { if (str == null) { str = ""; } String tmpStr = str; byte[] tmp_t = tmpStr.getBytes("ISO8859-1"); String tmp = new String(tmp_t); return tmp; } catch (Exception e) { e.printStackTrace(); } return ""; }在存入数据库的时候调用一下,再取出的时候调用一下.不要重复调用.这样就可以了.如果这样不行,那么再找其他的原因. 多谢各位朋友的帮忙,问题已经解决了。在此先谢谢各位了。尤其是steveyue(约翰岳)这位朋友。用了一中午的时间帮我解决了。 jsp数组出问题 我要把jdk和tomcat升级,会不会对现有的项目有影响????(在线等) 如何设置本地ANSI编码为GBK呢? 请教SendRedirect的问题 耶怪了...数组? 百度地图API有没获取城市列表的api,方便城市间的切换 help ?? 连接sqlserver时报错: 关于jbuilder的问题,困扰很久,希望解决!!!在线等待! 请帮我看看这段代码?绝对送分给你!先来先解决先得分! 我现在做一个OA系统.需要从客户端上传过来一个Word文件,然后再把这个Word文件显示出来,上传已经没问题了.请问显示的时候应该怎么做??? jsp是什么啊
当然,读出来后自然就是乱码了。换个jdbc版本,哪里有下载的呀。
我不知道。我是新手。
request.setCharacterEncoding("gb2312");
%>然后执行你的页面之后看看数据库里的中文是否还是乱吗
try
{
String str=new String(yourStr.getBytes("8859_1"),"gb2312");
}catch(Exception g)
{
}
你的方法不对。
j2nix(八月) 刚刚看完。有点晕晕的。不知道讲的是什么。
yourstr是什么变量。没有定义过的呀。
<% response.setContentType("text/html;charset=gbk");
request.setCharacterEncoding("gbk");%><%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=gbk"%>一定有效!^-^
这样输入输出都是正常字符了。
我用的是SQLServer2000+SP3。
这样存入数据库的文字就不会是乱码了;取出来之前最好再转换一次;
你可以把字符转换写成一个bean,这样最好了;还有声明一下:不知道怎么解决问题的不要在这里乱说话,误人子弟!
这样存入数据库的文字就不会是乱码了;
取出来之前最好再转换一次;
你可以把字符转换写成一个bean,这样最好了;还有声明一下:不知道怎么解决问题的不要在这里乱说话,误人子弟!我没有象你那样转化..因为不必那么麻烦..可是我的不是乱码,至于字符转化弄的象你那么麻烦,还要写成一个bean,我看你才是不知所云呢,字符乱码可能是多种原因(我就遇到过由于apache配置不对造成过,jdbc驱动不对造成过),未必人家遇到的就是和你遇到的是一个原因,你凭什么说别人在误人子弟.
if(clientLanguage != null && clientLanguage.compareToIgnoreCase("zh-cn") == 0){
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=GBK");
}
这样完全不用考虑存储数据库的转化与提取的转化;
如果你没有用servlet,那么就你做一个方法如下:
public static String getStr(String str) {
try {
if (str == null) {
str = "";
}
String tmpStr = str;
byte[] tmp_t = tmpStr.getBytes("ISO8859-1");
String tmp = new String(tmp_t);
return tmp;
}
catch (Exception e) {
e.printStackTrace();
}
return "";
}
在存入数据库的时候调用一下,再取出的时候调用一下.不要重复调用.这样就可以了.
如果这样不行,那么再找其他的原因.
在此先谢谢各位了。
尤其是steveyue(约翰岳)这位朋友。
用了一中午的时间帮我解决了。