语言入口:简体中文 | English | 北亚博客
 
    
 
北亚Linux数据恢复

首席工程师:张宇

手机:18600440055

座机:4006505646-801

传真:4006505646-809

Email:zy@datahf.net

地址:北京市海淀区永丰基地丰慧中路7号新材料创业大厦B座205室
QQ:点击这里给我发消息
当前位置:首页>>Linux修复知识>>Linux分区修复>>正文
Linux修复知识

MySQL中文乱码的解决方案


      为了对国际化的支持,MySQL的客户端和服务器端开始都采用UTF8,包括表示层的各个页面也统一采用UTF-8,但这样在插入数据的时候就出现了ERROR 1406 (22001): Data too long for column 'username' at row 1错误!错误原因是‘username’字段数据太长,实际上最根本的原因是由于字符集编码的问题。

解决方案:

       其实无论是JSP页面,还是命令提示符的方式,都是MySQL数据库的用户接口,在你往数据库中插入数据的时候,必须把这些“用户接口”的字符集编码设置成与数据库存储时的字符编码一致,这样才能正常显示。(正像我们在JSP页面中加入<%@ page language="java" pageEncoding="UTF-8"%>或'conten-type:text/html;charset=utf-8')的意思一样,需要把命令提示符的字符集编码设成UTF8,然后再做相应的数据库操作。)

注意点:

1、windows下的命令提示符字符集编码只有GBK,它兼容GB2312,所以你可以在MySQL命令行使用set names gbk,也可以使用set names gb2312,因为gbk对gb2312兼容,但gbk对utf8却不兼容,换句话说,utf8字符集包括gbk,gbk包括gb2312.所以在windows下你使用set names gbk,set names gb2312都能正常操作。但是用set names utf8却会出错。但在windows下的命令提示符字符编码好像是修改不了的。Linux下是支持的!

2、如果你是在EMS,MySQL的一个图形化工具,在象上面设置的情况下,你看到的有可能还是乱码,你可以按以下操作来处理:1)右击数据库2)选择Database Registion info...3)在Client charset中选择[gb2312(GB2312 Simplified Chinese)] 或者[gbk(GBK Simplified Chinese)]


<!--EndFragment-->

转自:http://snowlucky.iteye.com/blog/326553

上一篇:MySql数据库修复
下一篇:没有了
JFS文件系统简介
XFS文件系统简介
Reiserfs文件系统简介
EXT3文件系统简介
常见Linux文件系统简介
GRUB简介与配置
LILO的使用和配置
Linux单用户模式维护系统
引导加载程序简介
重置Linux用户口令
  版权所有@北京北亚时代科技有限公司   京ICP备09039053号    
  总部电话:(010)82488636  中国·北京·海淀区中关村E世界C座8层879室               站点地图   联系我们  RSS阅读
r/