mysqlmysql为什么不能输入中文显示中文

博客访问: 4052304
博文数量: 647
注册时间:
分类: Linux操作系统 15:05:42
遇到一个非常奇怪的问题,mysql命令行下无法输入中文,但是在操作系统层是没有问题的,进入mysql命令行看就无法正常输入,无论如何设置set names,或者是启动前附加--default-character-set均不行,复制粘贴字节的方式也不行,不过浏览包含中文字符的表或字段倒能够正常显示~~网上搜索,看到有不少人提到这个问题,但多都是通过set names gbk的方式就可以解决,情况与我当前遇到的并不相同。经过本地多番的尝试可以确定与MySQL服务没有关系,应该还是客户端本地操作系统的原因。因为从有问题的客户端连接任何MySQL数据库均无法输入中文字符,而从正常的客户端连接任何MySQL数据库均能正常输入字符。在网上搜索的过程中,看到有网友提到设置操作系统层的LANG变量,指定字符集,我按照其中的一些案例,设置成GBK或UTF-8,但均无果~~~也不能说无果,因为多次调试后发现情况有了些变化,如下:mysql>&& & -> ;ERROR ): You have an error in your SQL check the manual that corresponds to your MySQL server version for the right syntax to use near '会影' at line 1而之前是完全不接受任何中文字符的,现在,如上所示,字符实际上是输入了的,但没有显示出来,这点非常的奇怪~~最后,尝试export LANG="zh_CN.GB18030",然后mysql客户端中就能输入中文了~~如果有谁遇到过类似的情况,可以参考我尝试的步骤去处理,也许能够解决问题~~~不过如果更深入一些,对比其它正常客户端上LANG变量,发现五花八门,设什么的都有,GBK/ZHS16GBK/UTF-8等,也未发现问题~~怀疑仍然是跟操作系统有关系,虽然当前从现状看解决了问题,但实际缘由还是没有搞清楚,如果哪位朋友遇到过类似问题并且找到了明确的答案,欢迎向我答疑解惑~~~
阅读(15169) | 评论(6) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
:原帖由andrefun于 17:44:18发表
是编译的时候用了EditLine,换成readline就可以了。
测试了一下,确实与此有关,编译时with_readline=on后输出中文字符就正常了~~~
我用的是Editline的客户端输入中文没有问题,看起来并不是这个问题我不能输入中文的客户端版本:mysql&&Ver&14.14&Distrib&5.6.23,&for&Linux&(x86_64)&using&&EditLine&wrapper能输入中问的客户端版本:mysql&&Ver&14.14&Distrib&5.6.23,&for&linux-glibc2.5&(x86_64)&using&&EditLine&wrapper都是Editline&Wrapper |
:原帖由andrefun于 17:44:18发表
是编译的时候用了EditLine,换成readline就可以了。
测试了一下,确实与此有关,编译时with_readline=on后输出中文字符就正常了~~~
谢谢分享 |
原帖由andrefun于 17:44:18发表
是编译的时候用了EditLine,换成readline就可以了。
测试了一下,确实与此有关,编译时with_readline=on后输出中文字符就正常了~~~
原帖由andrefun于 17:44:18发表
是编译的时候用了EditLine,换成readline就可以了。
好,找机会测试一下是否确实如此~~
是编译的时候用了EditLine,换成readline就可以了。
请登录后评论。查看:2549|回复:2
如何在mysql中输入中文?
切换输入法后即可输入汉字,但能否正常 显示,还需要设置几个字符集系统变量如character_set_client、character_set_connection、character_set_result等,一般都通过set names直接设置
优秀技术经理
输入中文是可以直接输入的啊,切换到中文输入法就行了。不过要显示中文,要设置字符集
default-character-set=gbk
character_set_server=gbk分享技术问题和心得
mysql出现中文乱码或不能输入中文问题的Windows或Linux系统解决方法
相信MySQL新手在刚接触MySQL时总会遇到中文乱码的问题,如ERROR 1366 (HY000): Incorrect string value。作为新手,我也遇到过。不过以前没系统地找过解决方法,最近因为Linux要安装MySQL,我遇到了在MySQL命令行中中文不能输入和中文乱码的问题,就查找解决方法解决,顺带把windows系统中文乱码的问题给解决了。下面我将分别介绍如何在Windows和Linux系统解决类似的问题。
一. Windows环境下:
在mysql安装目录下找到my.ini文件,注意是安装目录下,而不是安装目录下的bin目录下,否则修改了也不会生效。我就犯了这样的错误。如果安装目录下没有,就把my-medium.ini复制(注意是复制,不要覆盖或删除掉,以防可能出现未知的错误)重命名为my.ini,然后做如下添加:
default-character-set=utf8
collation-server=utf8_general_ci
character_set_server=utf8
default-character-set=utf8
然后重启mysql服务(net start mysql)即可。在命令行输入status或show variables like 'character%';发现编码方式变成了utf8。
二. Linux环境下:(注:我的系统是Centos7.2 64位,用RPM方式安装的MySQL,不一样的系统和安装方式可能处理方法不一样。)
mysql不支持输入中文的解决方法:可能是因为shell不支持中文,这是Linux环境配置问题,需要打开locale.conf文件,即vim /etc/locale.conf,然后做如下修改:
LANG="en_US.UTF-8"。
mysql中文乱码出现ERROR 1366 (HY000): Incorrect string value错误解决方法:
1.直接解决方法通过改配置文件:
#vim /etc/my.cnf(5.5以后MySQL) 做如下添加:
default-character-set=utf8
default-character-set=utf8
collation-server=utf8_general_ci
character_set_server=utf8
然后重启mysql服务,在命令行输入status或show variables like 'character%';发现编码方式变成了utf8。
2.间接解决方法通过修改数据库、表的编码方式
建表之前指定编码方式:create table
tablename (...) default charset=utf8
改变已建立的数据库:alter database databasename character set utf8;
改变已建立的表:alter table tablename convert to character set utf8;
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!mysql怎样用中文输入
我在mysql里建立试题表格,但是要用到中文输入,请教各位怎样才能输入中文?
08-12-09 &匿名提问
将my.ini文件中的默认字符集改为gb2312即可 具体的办法是修改其中的[mysqld] 里添加一行: default-character-set=gb2312 然后重启服务,不过只对修改后的数据有效,对修改前已经在数据库中的数据是没有效果的. 如果是临时更改的话,在命令行输入下面信息即可: SET character_set_client = gb2312; SET character_set_connection = gb2312; SET character_set_database = gb2312; SET character_set_results = gb2312; SET character_set_server = gb2312;
请登录后再发表评论!
个编码就是gb2312编码,因为在交互环境下它又在一个tuple中,因此会显示汉字的编码。你把它取出来再显示就正确了。
请登录后再发表评论!
程序如下: #testdb.py import MySQLdb db=MySQLdb.connect(host=&localhost&,user=&user&,passwd=&passwd&,db=&test&) c=db.cursor() c.execute(&&&SELECT * From t1&&&) rs=c.fetchone() while rs!=None: print rs rs=c.fetchone() db.close() t1里头有2个自段(No和Name),数据如下: No Name '00' 'Ken' '01' 'Kitty' '02' 'John' '03' '我' 使用上面的程序得到的结果如下: &&& ================================RESTART================================ &&& ('00', 'Ken') ('01', 'Kitty') ('02', 'John') ('03', '\xce\xd2') &&&
请登录后再发表评论!温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
All the splendor in the world is not worth a good friend!!
Hello my friend!!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(3613)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'mac下 mysql 插入中文乱码解决',
blogAbstract:'搞了好几个小时,终于搞定了乱码根本原因还是编码方式不同造成的,只要编码方式统一就没问题1. 进入 mysql 命令行, 用 show variables like \'character_set_%\'; 查看编码',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:7,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'All the splendor in the world is not worth a good friend!!\r\nHello my friend!! ',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 mysql为什么不能输入中文 的文章

 

随机推荐