解决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 ......