SmartUpload取表单内容存入 mysql 数据库变成乱码!怎么解决!

时间:2022-06-03 06:39:06
String Topic=mySmartUpload.getRequest().getParameter("title");

out.print(Topic);//能正常显示中文啊!

可是存入MYSQL数据库后就变成乱码了!为什么啊!

网上的都说用这个request.setCharacterEncoding("ISO-8859-1");

可request都没有用来接受表单的内容,改怎么修改才行呢???

13 个解决方案

#1


你既然得到的Topic能正常显示,出现乱码就可能是在插入数据库中出现乱码了,一下几种方法你试一下:
(1)在连接数据库的url后面加上:characterEncoding="gb2312"
(2)在mysql的my.ini文件中加入default-character-set=gb2312
(3)String Top=new String(Topic.getBytes("ISO-8859-1"),"gb2312);这样转换后再插入数据库!

都试试吧!

#2


楼上的高手也!

#3


(3)的gb2312少了个反引号,改正一下!

#4


我觉得一楼的解决方案可以修改一下
(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk
(3)既然打印出来都没有问题,这个就没有需要了

#5


up

#6


getBytes("ISO-8859-1")  就用这个了,只要写进数据库时没乱码,以后读出来就不会乱码了,!~小弟也曾深受乱码的困扰!

#7


:?useUnicode=true;characterEncoding=gbk;
和:?useUnicode=true;characterEncoding=8859_1;
有什么区别的吗?我的用后面一种啊!

#8


成功了,最后我用的是 jFresH_MaN(TM) 说的改正后就能看见了啊!

太感谢了啊!终于克服了乱吗的问题了啊!

(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk

高手谢谢啊!

#9


不过之前我从MYSQL数据库去数据前用了这个函数啊!
        public String getGbk( String str) {
                try
                {
                   return new String(str.getBytes("8859_1"));
                }
                catch (Exception e)
                {
                        return str;
                }
        }

现在所有读出的数据都变成了乱吗!

#10


写如数据库前一定要转码,确保写进去的是中文。读出来的时候也要转码。

#11


要加上这个所有取出的数据就不会变乱吗了!

request.setCharacterEncoding("gbk");

#12


在标签里面去出数据如果没有request这个参数

怎么又用什么语句转换相当与request.setCharacterEncoding(  "gbk  ");  

的功能呢?

#13


MYSQL数据库最后的总结:网上的所有解决乱吗的问题我都试过了啊!

最后发现用
(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk

存入和取出再也不用什么
request.setCharacterEncoding("gbk");
String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);
只类的转换了,如果不是很理解这些,可能就会被转晕了啊!

所以觉得MYSQL数据库用gbk是最合适不过了,查询页面的中文也可以正常显示啊

再也不会有同样的一条sql语句在网页上查不出来,而通过查询工具却能查出结果

的编码不同的问题啊! 反正觉得不用把中文字符转到转去就很高兴了啊!

#1


你既然得到的Topic能正常显示,出现乱码就可能是在插入数据库中出现乱码了,一下几种方法你试一下:
(1)在连接数据库的url后面加上:characterEncoding="gb2312"
(2)在mysql的my.ini文件中加入default-character-set=gb2312
(3)String Top=new String(Topic.getBytes("ISO-8859-1"),"gb2312);这样转换后再插入数据库!

都试试吧!

#2


楼上的高手也!

#3


(3)的gb2312少了个反引号,改正一下!

#4


我觉得一楼的解决方案可以修改一下
(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk
(3)既然打印出来都没有问题,这个就没有需要了

#5


up

#6


getBytes("ISO-8859-1")  就用这个了,只要写进数据库时没乱码,以后读出来就不会乱码了,!~小弟也曾深受乱码的困扰!

#7


:?useUnicode=true;characterEncoding=gbk;
和:?useUnicode=true;characterEncoding=8859_1;
有什么区别的吗?我的用后面一种啊!

#8


成功了,最后我用的是 jFresH_MaN(TM) 说的改正后就能看见了啊!

太感谢了啊!终于克服了乱吗的问题了啊!

(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk

高手谢谢啊!

#9


不过之前我从MYSQL数据库去数据前用了这个函数啊!
        public String getGbk( String str) {
                try
                {
                   return new String(str.getBytes("8859_1"));
                }
                catch (Exception e)
                {
                        return str;
                }
        }

现在所有读出的数据都变成了乱吗!

#10


写如数据库前一定要转码,确保写进去的是中文。读出来的时候也要转码。

#11


要加上这个所有取出的数据就不会变乱吗了!

request.setCharacterEncoding("gbk");

#12


在标签里面去出数据如果没有request这个参数

怎么又用什么语句转换相当与request.setCharacterEncoding(  "gbk  ");  

的功能呢?

#13


MYSQL数据库最后的总结:网上的所有解决乱吗的问题我都试过了啊!

最后发现用
(1)在连接数据库的url后面加上:?useUnicode=true;characterEncoding=gbk;
(2)在mysql的my.ini文件中加入default-character-set=gbk

存入和取出再也不用什么
request.setCharacterEncoding("gbk");
String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);
只类的转换了,如果不是很理解这些,可能就会被转晕了啊!

所以觉得MYSQL数据库用gbk是最合适不过了,查询页面的中文也可以正常显示啊

再也不会有同样的一条sql语句在网页上查不出来,而通过查询工具却能查出结果

的编码不同的问题啊! 反正觉得不用把中文字符转到转去就很高兴了啊!