为什么JSP的插入到MYSQL中会变成乱码?变成"????" 插之前在页面中我OUT了一下变量.是中文的字符串.插了之后.我直接去看数据库.全变成了???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在存入数据库前做下转换。temp=net String(strTemp.getByte(ISO8859-1),"gb2312");得到的就是正确的。然后在存到数据库里。 不用这么麻烦,首先查查你的linux是不是lang=en_US,如果是,改成lang=zh_CN.GB2312,大功告成 public static final String dburl = "jdbc:mysql://localhost/bitc?useUnicode=true&characterEncoding=gb2312&user=root&password=1";连接~~然后什么也不转化~叶面用~~~charset=GB2312 运行环境不同造成的。我以前做过struts架构(jsp-action-actionform-db)的工程也出现类似现象,是在wsad4.0(IBM)做的,没有乱码,打包成XXX.war之后放到tomact下运行输入中文,写到数据库时是乱码,在actionform得到数据已经是乱码了,后来我们使用编码转化ISOTOGBK写到数据库中,在使用GBKTOISO读出没有乱码,但在放到wsad4.0运行又有乱码了。主要原因运行环境不同,struts包在读取传输数据是使用UTF-8格式进行的,wsad4.0内置服务运行环境是使用操作系统编码格式进行读取传输的;所以会出现这种情况。那你最好统一使用UTF-8格式,在输入和显示的jsp页面设置UTF-8格式,你的数据库也用UTF-8格式创建,不管输入什么语言符号都不会出现乱码。 我的数据库是oracle的,刚开始也有你这样的问题,我用了下面的方法就解决了,把下面的语句放在JSP程序的最上面<% request.setCharacterEncoding("gb2312");%> 要进行字符集的转换,肯定是在数据存入之前就已经是乱码了,转换一下就可以了。temp=net String(strTemp.getByte(ISO8859-1),"gb2312");或者temp=net String(strTemp.getByte(gb2312),"ISO8859-1"); 先转换一下:String(strTemp.getByte(ISO8859-1),"gb2312"); 修改web.xml加入<filter><filter-name>Set Character Encoding</filter-name><filter-class>filters.SetCharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param></filter> 怎样设置myeclipse查找时不要全部匹配 oscache缓存问题,如何在action中判断缓存的key已经存在了? 转义字符问题 哪里有mapxtreme for java的有实际意义的例子? 如果判断两个动态的值是否相等?知道的进thanks! 如何配置一个java的环境? ****Tomcat启动时候的奇怪问题!****** 老大们这是什么错误呀,,100相关 有谁知道哪里有JSP的中文资料? 生成的字段是实体类,运用hql查询时怎么查啊!急! 【极度郁闷,中文参数乱码???】 痛苦!jsp的中文传值的乱码问题!
temp=net String(strTemp.getByte(ISO8859-1),"gb2312");
得到的就是正确的。然后在存到数据库里。
连接~~然后什么也不转化~叶面用~~~charset=GB2312
我以前做过struts架构(jsp-action-actionform-db)的工程也出现类似现象,是在wsad4.0(IBM)做的,没有乱码,打包成XXX.war之后放到tomact下运行输入中文,写到数据库时是乱码,在actionform得到数据已经是乱码了,后来我们使用编码转化ISOTOGBK写到数据库中,在使用GBKTOISO读出没有乱码,但在放到wsad4.0运行又有乱码了。
主要原因运行环境不同,struts包在读取传输数据是使用UTF-8格式进行的,wsad4.0内置服务运行环境是使用操作系统编码格式进行读取传输的;所以会出现这种情况。那你最好统一使用UTF-8格式,在输入和显示的jsp页面设置UTF-8格式,你的数据库也用UTF-8格式创建,不管输入什么语言符号都不会出现乱码。
<%
request.setCharacterEncoding("gb2312");
%>
或者temp=net String(strTemp.getByte(gb2312),"ISO8859-1");
String(strTemp.getByte(ISO8859-1),"gb2312");
加入
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>