编码问题
来源:互联网 发布:淘宝隐藏导航栏代码 编辑:程序博客网 时间:2024/06/15 20:39
1、创建数据库的时候要选好一种支持中文的编码,可以选GBK、GB2312、UTF-8,选好后其他地方的编码都尽量与这里的一样,这里就以UTF-8为例说明。
2、在进行JSP页面代码区,将页面中凡是涉及到编码的地方都设置成与上述数据库同一编码。为了避免不同浏览器支持不同编码的问题,可以在每个页面的开始处(可以放在<head>标签前面)都加一条设置请求代码的编码,具体如下:
<%
request.setCharacterEncoding("utf-8");
%>
这样就能保证对发送的请求按照设置好的编码传过来,这解决了页面直接传递中文时出现乱码的问题,以下则解决插入数据库时乱码的问题。
3、当页面的编码和数据库的编码都相同的时候,就能保证中文数据传过来是正确的,但要保证插入时也正确,还要设置连接数据库时的编码。具体语句如下(连接的是MySQL数据库):
public class DB {
public static Connection getConnection(){
String user = "root"; //连接数据库时的用户名
String password = "root"; //连接数据库时的密码
String url = "jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf-8"; //加上这部分有关编码设置的代码
String driver = "com.mysql.jdbc.Driver";
Connection con = null;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
}
4、需要修改MySQL数据库的配置文件my.ini,此文件放在mysql根目录下。在此文件下查找default-character-set属性,并将其值更改为utf8(注意:不是utf-8,也要注意大小写),这里需要将default-character-set属性全部属性的值修改为utf8。示例:
default-character-set = utf8
提示:default-character-set属性有两个,一个在[mysql]下面,另外一个在[mysqld]下面。
(对hibernate)
5、同时创建hibernate数据库时需要显示设置数据库的编码方式为utf8。示例:
create database daycode default charset=utf8;
6、做完这两步还是不行,需要修改hibernate的配置文件hibernate.cfg.xml,在配置文件配置hibernate.connection.url属性。示例:
<property name="hibernate.connection.url">
<![CDATA[jdbc:mysql://localhost:3306/daycode?useUnicode=true&characterEncoding=utf8]]>
</property>
注意:此字符串不能写为jdbc:mysql://localhost:3306/daycode?useUnicode=true&characterEncoding=utf8,不然会出现编译错误,错误提示为将&连接符改为;。
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- 编码问题
- csdn的markdown编辑器如何保持图片原始大小?
- 【Jazz】Chet Baker
- 解决Windows 10 下 MarkdownPad2 预览无法显示的问题
- DOM事件
- <转>MyISAM和InnoDB的索引实现
- 编码问题
- android状态栏颜色修改
- 【LeetCode】图像
- 贝叶斯公式的数学定义
- <转>堆组织表(hot)和索引组织表(iot)
- Mysql数据库存储引擎
- file递归和一些综合练习
- RocketMQ源码解析:定时消息与消息重试
- 并发 并行 同步 异步 多线程的区别