Maison > développement back-end > tutoriel php > DOS下中文乱码

DOS下中文乱码

WBOY
Libérer: 2016-06-23 13:27:47
original
1279 Les gens l'ont consulté

今天准备在DOS下操作mysql数据库,往表格中插入数据的时候中文乱码。我的数据库和表格都是utf8格式的。
我的mysql是在文本中提前准备好的,是utf8编码格式,然后复制,往DOS里粘贴,就变成乱码了。我试过将dos编码页的格式改成utf8格式,应该是可以了,但是每次粘贴中文的时候都显示不完整,造成了类似乱码的现象,也就导致数据插不进去,有人说先最小化再最大化,确实那样可以,但我是做插入数据,可能都分了好几行,我一粘贴,然后就报错了

大神们,帮帮小弟吧!


回复讨论(解决方案)

没人吗??

最小化后再打开,就变成这样了,但我有这些代码,需要一口气运行

试一下在mysql编辑输入 set names gbk
可以参考这篇文章http://blog.csdn.net/wzwsj1986/article/details/1723658

命令行客户端使用的是GBK编码,在无论你的表是什么编码,你必须声明客户端是GBK编码的,也就是set names gbk;

试一下在mysql编辑输入 set names gbk
可以参考这篇文章http://blog.csdn.net/wzwsj1986/article/details/1723658



我的数据库和表都是设置的utf8编码格式的,像你说的,通过这个方向来改应该是行的,但是我是需要DOS来配合我的mysql编码,而不是mysql来配合DOS啊

命令行客户端使用的是GBK编码,在无论你的表是什么编码,你必须声明客户端是GBK编码的,也就是set names gbk;



DOS下的命令是可以设置编码格式的,chcp 65001 就可以设置DOS编码页的格式为utf8的格式的。我现在是将DOS的编码格式换成utf8了,而且我数据库和数据表的格式都是utf8,所以我想要在两边都保持utf8的格式,这样往表中插入数据就不会出现乱码了。但实际情况是,我将准备好的utf8格式的sql语句,粘贴到DOS下的时候,有中文就会出现显示不全,就像乱码一样,我也不知道系统是否将其当做乱码操作了。然后就无法插入数据

就这么沉了吗??

“我的mysql是在文本中提前准备好的,是utf8编码格式,然后复制,往DOS里粘贴,就变成乱码了”
我记得看过一篇博客,说的是Windows的自带的文本编辑器的utf8编码是有问题的,好像是开头的时候会做些什么处理,建议你用别的编辑器来生成sql语句,再在DOS下测试。。。。。

如何在DOS窗口中显示UTF-8字符
 
在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。
如果想正确显示UTF-8字符,可以按照以下步骤操作:
1、打开CMD.exe命令行窗口
2、通过 chcp命令改变代码页,UTF-8的代码页为65001
chcp 65001
执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。
3、修改窗口属性,改变字体
在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。
这时使用type命令就可以显示UTF-8文本文件的内容了:
type filename.txt
4、通过以上操作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。

看看有多复杂!

你已经把 SQL 指令写到文件里,那么
mysql>\. 文件名
不就执行了吗?何必复制粘贴

如何在DOS窗口中显示UTF-8字符
 
在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。
如果想正确显示UTF-8字符,可以按照以下步骤操作:
1、打开CMD.exe命令行窗口
2、通过 chcp命令改变代码页,UTF-8的代码页为65001
chcp 65001
执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。
3、修改窗口属性,改变字体
在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。
这时使用type命令就可以显示UTF-8文本文件的内容了:
type filename.txt
4、通过以上操作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。

看看有多复杂!

你已经把 SQL 指令写到文件里,那么
mysql>\. 文件名
不就执行了吗?何必复制粘贴



你这说的是直接执行这个文件啊?我没试过,或许可以。但比如说我文件中不是所有的内容都要执行呢?只需要执行其中一段代码呢? 又一下一下的在DOS下敲又太麻烦,但想把这一段代码粘贴过去,就会出问题。说白了,就是为什么不能utf8格式下的DOS为什么不能粘贴utf8格式的中文内容?我就想弄明白这一点啊


“我的mysql是在文本中提前准备好的,是utf8编码格式,然后复制,往DOS里粘贴,就变成乱码了”
我记得看过一篇博客,说的是Windows的自带的文本编辑器的utf8编码是有问题的,好像是开头的时候会做些什么处理,建议你用别的编辑器来生成sql语句,再在DOS下测试。。。。。



我用的EditPlus存储的sql语句,就是不明白了,为什么粘贴中文会出现类似乱码的样子(我也不知道是不是乱码,但是只能显示大概一半的样子)

命令窗口是远古时代遗留的东西,不能适应现代的环境是一件很正常的事情
你也知道修改命令窗口的字符集是多么的繁琐,那么你就该去适应他,而不是让他去适应你

一条 set names gbk 指令就可解决的问题,你却非要莫名其妙的用什么 utf-8

再说 MySQL 客户端工具有很多,干嘛非要在 cmd 上吊死呢?

命令窗口是远古时代遗留的东西,不能适应现代的环境是一件很正常的事情
你也知道修改命令窗口的字符集是多么的繁琐,那么你就该去适应他,而不是让他去适应你

一条 set names gbk 指令就可解决的问题,你却非要莫名其妙的用什么 utf-8

再说 MySQL 客户端工具有很多,干嘛非要在 cmd 上吊死呢?



好吧...或许只能这样了
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal