社区
Eclipse
帖子详情
jsp+mysql 插入的字符全是问号。
xyqsoft
2007-10-17 04:37:40
jsp+mysql 插入的汉字全是问号。
我从网上搜了很多,照着做了,但是没有解决,不知道怎么回事。
...全文
540
12
打赏
收藏
jsp+mysql 插入的字符全是问号。
jsp+mysql 插入的汉字全是问号。 我从网上搜了很多,照着做了,但是没有解决,不知道怎么回事。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vincentsytu
2007-10-25
打赏
举报
回复
还要注意你的mysql数据库字段的编码问题.
wangqingyu0088
2007-10-22
打赏
举报
回复
严重同意火果龙
火龙果被占用了
2007-10-19
打赏
举报
回复
55555~~~~,还是错了,再改一下,这次是彻底检查过的,不会再错了:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK
看来以后不能再粘别人的了。
火龙果被占用了
2007-10-19
打赏
举报
回复
不好意思,第二个复制楼上的,写错了,更正一下,应该是:
jdbc:mysql://localhost:3306/test&userUnicode=true&characterEncoding=GBK
火龙果被占用了
2007-10-19
打赏
举报
回复
jsp+mysql 乱码问题是极其复杂的,想想一个 JSP 的乱码就已经很复杂了,再加个 MySQL,
按以下的方法逐个排除:
1. 保证 MySQL 中能正确地插入中文字符,可以在 MySQL 的控制台下测试。
若不能的话,找到 MySQL 程序目录中的 my.ini 文件,在 [mysqld] 和
[mysql] 组中加上 default-character-set=GBK,重启服务,重建数据
库和数据表就 OK 了,若不想重建,那就得一个字段一个字段的更改编码,
相当麻烦的。
2. JDBC 连接字符串为:jdbc:mysql://localhost:3306/test&userUncode=true&characterEncoding=GBK
3. JSP 页面的编码是 GBK,并且 request 和 response 的编码也设成了 GBK。
这种可以配置一个过滤器,6 楼已经给出了一个。
4. 如果数据是采用 GET 方式提效的话,那就更为复杂了,先将
%TOMCAT_HOME%/conf/server.xml 中的两个 Connector 加上 URIEncoding="GBK"
更改地址栏编码,默认是 ISO-8859-1 的。如果你使用的是 Firefox 浏览器,
那就 OK 没问题了,如果是 IE,那还有大量的问题,需要将 GET 请求提交的
中文字符串使用 java.net.URLEncoder 的 encode(str, "gbk") 进行 URL
编码,再从接收方使用 java.net.URLDecoder 的 decode(str, "gbk") 进
解码。
以上是我在 JSP 中乱码的解决方法,以供参考。
lanzhengwu
2007-10-19
打赏
举报
回复
如果只是显示出现问号的话,应该不是过滤器的问题
像这样:String url = "jdbc:mysql://localhost:3306/exercise?" +
"user=root&password=root&userUncode=true&characterEncoding=GB2312";//从数据库里直接加中文没有问题;要从页面上加就得这么弄了
hanxiaoyidi
2007-10-19
打赏
举报
回复
加个过滤器就可以了,你把下面的代码拷贝一下,放到你的工程里,然后把下面的配置拷到web.xml里就可以了.
package com.cafuc.filter;
import java.io.IOException;
import javax.servlet.*;
public class EncodingFilter implements Filter
{
protected String encoding;
protected FilterConfig filterConfig;
protected boolean ignore;
public EncodingFilter()
{
encoding = null;
filterConfig = null;
ignore = true;
}
public void destroy()
{
encoding = null;
filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
if(ignore || request.getCharacterEncoding() == null)
{
String encoding = selectEncoding(request);
if(encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig)
throws ServletException
{
this.filterConfig = filterConfig;
encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if(value == null)
ignore = true;
else
if(value.equalsIgnoreCase("true"))
ignore = true;
else
if(value.equalsIgnoreCase("yes"))
ignore = true;
else
ignore = false;
}
protected String selectEncoding(ServletRequest request)
{
return encoding;
}
}
web.xml里的配置如下:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.hwadee.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
对了,放在<servlet></servlet>的前面哦!
祝你成功!有新的问题在说一下哈!
胡矣
2007-10-19
打赏
举报
回复
request.setCharacterEncoding("****") ;
保证程序的编码方式和数据库的编码方式相同 不发生字符集转换就不会出现乱码了
nemo0228
2007-10-18
打赏
举报
回复
看看你jsp的字符集,一般是utf-8的,转一下
<%@ page contentType="text/html; charset=gbk" language="java"%>
用这句就行
当然,如果你要在sql里执行的话,还需要将字符转成和你的数据库相同的字符集
CambridgeLove
2007-10-18
打赏
举报
回复
public class ConnectionDB {
static Connection conn = null;
static PreparedStatement pstmt = null;
public static Connection connDB(){
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/exercise?" +
"user=root&password=root&userUncode=true&characterEncoding=GB2312";//从数据库里直接加中文没有问题;要从页面上加就得这么弄了,^_^
String userName = "root";
String password = "root";
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.err.println(e.getMessage());
}
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.err.println(e.getMessage());
}
return conn;
}
wshsm
2007-10-17
打赏
举报
回复
首先先保证mysql里面建立的表编码指定为gbk或者utf-8
godenvoy
2007-10-17
打赏
举报
回复
在Tomcat中的server.xml中
<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="utf-8"(加入这句)
/>
然后写一个过滤器,过滤页面就可以啦
mysql
存储日期
jsp
,
JSP
+
MySql
的时间处理
JSP
+
MySql
的时间处理很久没有用
Mysql
了,发现小小的时间问题也遇到不少麻烦,呵呵所以总结一下:第一种:Date time= new java.sql.Date(new java.util.Date().getTime());第二种:java 用PreparedStatement来setDate,用
问号
的形式给日期
问号
赋值pstmt.setTimestamp(8, new Timestam...
Web开发实训——学生信息管理系统(
JSP
+Servlet+Ajax+
MySQL
)
Web开发实训——学生信息管理系统(
JSP
+Servlet+
MySQL
) 核心思路 前端HTML页面,构成
JSP
页面 后端Servlet管理 后端使用JDBC连接数据库 开发环境 Dreamweaver CC 2018 Eclipse EE
MySQL
5.7 完成结果 实现学生信息管理系统,能够对学生信息进行查看、增加、修改、删除、搜索、排序等功能; 不包含任何框架,如JQurry; ...
jsp
与
mysql
系统时间_
JSP
+
MySql
的时间处理
JSP
+
MySql
的时间处理总结如下:第一种:Date time= new java.sql.Date(new java.util.Date().getTime());第二种:java 用PReparedStatement来setDate,用
问号
的形式给日期
问号
赋值pstmt.setTimestamp(8, new Timestamp(System.currentTimeMillis()));ps...
【
JSP
实验报告】手把手教Web项目=
jsp
+tomcat+
MySQL
点图上标明了的“加号”,选择“Web Application:Exploded——》from Model”,添加后,我这里(不知道叫什么,姑且叫做“文件们”)是默认在“Available Elements”下,需要把module项目下的所有“文件们”全部双击一遍,才能移到<output root>路径下,也就成了WEB-INF下的文件。 ...
jsp
mysql
中文
问号
_
Jsp
程序使用
mysql
出现中文乱码的解决办法
有关
JSP
中文乱码问题有不少解决方法。首先实现了一个StringConvert bean(GBtoISO()和ISOtoGB()两个方法),解决了与
MySQL
数据库交互的时候的部分中文乱码问题:在
JSP
程序中读取
MySQL
的 中文内容,用这两个方法可以解决乱码问题。但是从
JSP
写入到
MySQL
的中文内容都成了乱码,并且再读出来的时候也显示为"??",在这里应该出现了编码转换过程中的
字符
信息丢失。郁...
Eclipse
58,454
社区成员
49,450
社区内容
发帖
与我相关
我的任务
Eclipse
Java Eclipse
复制链接
扫一扫
分享
社区描述
Java Eclipse
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章