解决mysql数据库中文乱码问题

解决乱码最好的方法是在项目设计之初,统一所有的字符集,例如页面、request对象以及数据库等等。

一、 几种常见的乱码现象:

1、页面乱码

单纯的页面乱码是很好解决的,只要修改头部适合的字符集即可,如果页面中文显示乱码,你可以把字符集修改为:gb2312或gbk。

2、页面之间传递的参数是乱码

页面之间传递参数出现的乱码,就要解决页面编码和requset的字符集问题,在参数传进传出时重新设置相应的字符集。比如:request.setCharacterEncoding("UTF-8");

3、数据库乱码(下面详细介绍)

在ssh框架中解决中文乱码问题(希望对你有用!)

1. jsp页面中 全部为utf-8

pageEncoding="UTF-8"%>

2.action中为utf-8(有时有作用)

HttpServletRequest request =ServletActionContext.getRequest();
request.setCharacterEncoding("UTF-8");

3. web.xml中为utf-8

encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true

4.数据库连接为utf-8

jdbc:mysql://localhost/数据库名?useUnicode=true&characterEncoding=UTF-8

5 数据库编码为gbk(见附件)

页面和页面传值都没有问题,结果发现存储在数据库中的数据出现了乱码,则问题是出现在数据库的编码问题。

下面我已MySql数据库为例说明解决方法:

如果你安装数据库的时候字符集使用的默认选项:latin1

DOS命令下进入数据库show 一下字符集(命令:show variables like"%char%"; )

相关文档:

新建backup.bat

设置mysqldump全局环境变量或使用时写入绝对路径

@echo off
set date0=%date:~0,10%
set time0=%time:~0,8%
set time1=%time:~0,2%
set time2=%time:~3,2%
set time3=%time:~6,2%
echo %time0%
echo %time1%
echo %time2%
echo %time3%
mysqldump -u -p -h

昨天用脚本连接数据库时出现了用户登录被拒绝的提示,当然是远程连接Mysql。从网上查查发现是没有远程登录的权限。用时

用:grant all on *.* to 'user'@'192.168.XX.XX' identified by 'password';

在使用这个密令前首先要用root用户登录到需要远程访问的数据库上,然后在修改权限。 ......

今天找到了取mysql表和字段注释的语句

取字段注释

SELECT COLUMN_NAME 列名, DATA_TYPE 字段类型, COLUMN_COMMENT 字段注释
from INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'companies'##表名
AND table_schema = 'testhuicard'##数据库名
AND column_name LIKE 'c_name'##字段名

--------------------------- ......

记了一些用 Windows 的命令行来操作 MySQL 的指令。

摘要

连结 MySQL

->mysql -u username -p

username 是你的帐号名称。

远程连结

->mysql -h hostname -u username -p

hostname 是 MySQL 主机的名称。

显示全部的数据库

SHOW DATABASES;

mysql 是 MySQL 用来储存帐号和权限的数据库,不能删除。

选择 ......

mysql 导出表:

mysqldump -u 用户名 -p  --opt  数据库用户名 表名
> 表名.sql
mysql 导出数据库:
mysqldump -u
用户名 -p  --opt  数据库用户名
>

数据库

名.sql

mysql 导入表:

>source e:\base\pet.sql;

mysql 导入表数据:

>LOAD DATA LOCAL INFILE 'e:path/pet.txt ......