日期:2014-05-18  浏览次数:20682 次

jsp向mysql插入中文问题
向mysql数据库里插入中文后   是   “?”     怎么解决  


谢谢了

------解决方案--------------------
保存的时候转换位iso-8859-1,从数据库取出来的时候转换为你自己的编码

new String(str.getBytes( "gbk "), "iso-8859-1 ");
new String(str.getBytes( "iso-8859-1 "), "gbk ");
------解决方案--------------------
你得先找到问题的源处才能解决啊。
测试吧,在servlet里面写System.out.println()来输出变量(“即你接收到从页面输入的数据”).如果接收到的就是乱码那么写一个过滤器(关于过滤器网上很多,可以自己搜搜).
最简单的是自己写一个servlet类。然后 response.setCharacterEncoding( "GBK ");这个类里面就要这句话,然后再web.xml里面配置
<servlet>
<servlet-name> action </servlet-name>
<servlet-class> 这里写你的servlet的全路径,如:com.util.CharacterEncodingAction </servlet-class>
</servlet>
然后你再看看接收到的值会不会还是乱码
------解决方案--------------------
mysql在显示的时候转化,与sqlserver不同
------解决方案--------------------
保存的时候转换位iso-8859-1,从数据库取出来的时候转换为你自己的编码

new String(str.getBytes( "gbk "), "iso-8859-1 ");
new String(str.getBytes( "iso-8859-1 "), "gbk ");

------------------------
这种方法既烦琐, 也极其混乱...

建议统一使用UTF-8编码, 然后JSP容器中使用一个过滤器

MySQL数据库编码使用UTF-8较好.
------解决方案--------------------
不是的,你先要把mysql的编码模式弄清,然后有个问题是从jsp到jsp读取的都是乱码,这个问题你也要解决,不过他们都说过了,我不重复了,呵呵,我以前也遇到过,自己搞定