从mysql里面取出的数据是乱码

flash203 2008-01-09 09:19:50
我用的mysql,字符集是GBK.从服务端查看表里面的数据中文都能正常显示.但从数据库里查出来的数据显示的是问号,这是问题怎么解决啊?
...全文
868 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
bea_java 2008-02-18
  • 打赏
  • 举报
回复
你的连接字符串写的有问题。
数据库的,你在网络上找哈连接字符串。*****************郁闷。
flash203 2008-01-21
  • 打赏
  • 举报
回复
26楼的方案我用了,没有解决问题
yixuan0739 2008-01-17
  • 打赏
  • 举报
回复
楼上都说的有理,但我想说一下,最好是把页面编码,连接串编码, 还有数据库编码都统一起来,这样就不要转来转去了
wqb127 2008-01-17
  • 打赏
  • 举报
回复
如果是在配置文件里就要按[火龙果]那个方改下就行了

还有MYSQL里联接好像没有UTF-8这个编码.你用GBK就行了
java_xiang 2008-01-17
  • 打赏
  • 举报
回复
管理人论坛群欢迎大家加入 群号码:37479773 想做或想做管理的人可以加
privatemiao 2008-01-17
  • 打赏
  • 举报
回复
解决方案:
1. mysql 中的 my.ini 将字符集该为 GBK
2. java中的链接 url 中加入GBK的Encoding jdbc:mysql://localhost:3306/DataBase?useUnicode=true&characterEncoding=GB2312
3. 你的编辑工具必须是GBK的编码 否则你的后台输出也会出现乱码的
4. 如果你是在页面显示中文字符的 那么在页面的最上面加上
<%@ page contentType = "text/html;charset=GBK"%>
5. 如果你的servlet 会从前台接收参数, 那么请在接收参数之前加上 response.setCharactEndcoding("GBK");
  • 打赏
  • 举报
回复
如果是配在XML中的,也就是说要把&改为&
WGDONG598 2008-01-14
  • 打赏
  • 举报
回复
加过滤器的方法挺好的,另外有个办法就是再每次读取数据库的时候调用一下如下这个字符转换函数:

/*在插入数据库中文字符时首先使用函数进行转化,然后调用insert语句实现
*
*/
public static String GBK(String action) {
if (action == null)
return "";
try {
byte[] b = action.getBytes("ISO-8859-1");
String convert = new String(b, "GB2312");
return convert;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/*从数据库取出时调用一下这个*/
public static String gbkf(String action) {
if (action == null)
return "";
try {
byte[] b = action.getBytes("ISO-8859-1");
String convert = new String(b, "GBK");
return convert;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
  • 打赏
  • 举报
回复
Digester在解析XML文件时出错了,检查一下你可能改过的server.xml、web.xml和struts-config.xml,
这些XML都是采用Digester进行解析的。
黑夜愁客 2008-01-12
  • 打赏
  • 举报
回复
zhengjianbo4 2008-01-12
  • 打赏
  • 举报
回复
有时候,mysql和tomcat的字符集要同步的,还有jsp的字符集也要同步
hahe7788 2008-01-12
  • 打赏
  • 举报
回复
按有几个群,你不妨加进去,可以和大家一起讨论啊.........46986340,28039577,4804620
在那里看看有无能回答你的,谢谢,LZ,甭忘了给俺分哦,谢谢LZ
flash203 2008-01-12
  • 打赏
  • 举报
回复
我添加了过滤器,但还是没有解决啊
fjweigo 2008-01-11
  • 打赏
  • 举报
回复
方法有很多种,我以前做项目也遇到过!
我的解决方法就是加一个过滤器的类,在里面设置字符格式.然后配制下web.xml文件!
duan_cloud 2008-01-11
  • 打赏
  • 举报
回复
乱码问题可以看看http://liyazi.bokee.com/6431447.html
  • 打赏
  • 举报
回复
我从来不用在连接串中加入characterEncoding

只用过滤器
dgqbcht 2008-01-10
  • 打赏
  • 举报
回复
设置字符集最后必须加分号。错误第一行提示的很清楚……
大家有必要提高基本的英文水平。
flash203 2008-01-10
  • 打赏
  • 举报
回复
我把url修改成jdbc:mysql://localhost:3306/product?useUnicode=true&characterEncoding=utf-8这个样子了.为什么启动tomcat的时候报如下错误

2008-1-10 0:24:54 org.apache.commons.digester.Digester fatalError
严重: Parse Fatal Error at line 8 column 108: The reference to entity "characterEncoding" must end with the ';' delimiter.
org.xml.sax.SAXParseException: The reference to entity "characterEncoding" must end with the ';' delimiter.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:868)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(XMLNSDocumentScannerImpl.java:460)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:277)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2740)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.commons.digester.Digester.parse(Digester.java:1572)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:738)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1003)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:836)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3823)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4128)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:420)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:1967)
at org.apache.catalina.startup.Catalina.start(Catalina.java:541)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
2008-1-10 0:24:54 org.apache.struts.action.ActionServlet handleConfigException
严重: Parsing error processing resource path /WEB-INF/struts-config.xml
org.xml.sax.SAXParseException: The reference to entity "characterEncoding" must end with the ';' delimiter.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.commons.digester.Digester.parse(Digester.java:1572)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:738)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1003)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:836)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3823)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4128)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:420)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:1967)
at org.apache.catalina.startup.Catalina.start(Catalina.java:541)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
2008-1-10 0:24:54 org.apache.catalina.core.ApplicationContext log
信息: Marking servlet action as unavailable
2008-1-10 0:24:54 org.apache.catalina.core.ApplicationContext log
严重: Servlet /newProduct threw load() exception
javax.servlet.UnavailableException: Parsing error processing resource path /WEB-INF/struts-config.xml
at org.apache.struts.action.ActionServlet.handleConfigException(ActionServlet.java:769)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:745)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1003)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:836)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3823)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4128)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:420)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:1967)
at org.apache.catalina.startup.Catalina.start(Catalina.java:541)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
flyheart_7 2008-01-10
  • 打赏
  • 举报
回复
将ie中的编码选项改为GB2312不知能否解决?
yuer1985 2008-01-10
  • 打赏
  • 举报
回复
严重: Parse Fatal Error at line 8 column 108: The reference to entity "characterEncoding" must end with the ';' delimiter.
=====================
;+
加载更多回复(10)

81,116

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧