关闭

Windows下mysql中文导入出错:ERROR 1366 (HY000)

标签: windowsMySQL1366ERROR
956人阅读 评论(0) 收藏 举报

转载自:http://lwjlaser.iteye.com/blog/1013071

原来在linux下写的程序改到windows中来了,测试程序的时候要向mysql数据库插入测试数据,刚开始用的是mysql gui tools,没想到在sql语句框里无法输入中文(输入极为乱码),很是悲剧,于是改用mysql命令行输入中文,没想到在插入的时候出现错误“RROR 1366 (HY000): Incorrect string value: ……”,网上查了一下说是编码的问题,开始我就很怀疑,我的mysql安装的时候选择的是utf8编码格式,对中文是没有问题的啊!它的解决方法是所有的设置成gbk,我觉得这个方法不好,因为gdk是中文编码,对其他亚洲语系的编码不一定能支持,如果要想国际化最好是utf8编码,更重要的是原来的程序在linux下面设置了大量的utf8编码,如果改数据库编码格式为gbk将会导致程序不稳定和很多潜在的bug。可是我怎么修改都不好用。弄了一整天,相当郁闷。最后的时候想起来了windows平台默认的编码格式是gbk,所以在用命令行执行插入语句的时候命令行中的中文是gbk编码,与mysql中的utf不同,导致出现这个错误,又因为mysql gui tools对中文支持不好,于是换了一个mysql图形工具,改用navicat,在这个软件中执行sql插入语句没有任何问题,成功插入。原来的数据库设置没有问题,是windows操作系统的默认编码格式和数据库冲突,而linux的默认编码格式为UTF-8,所以不会有这样的问题。特在这里记录下来,方便遇到同样问题的可以不像我这么费力。
    总结遇到问题要多想一些,不要盲目相信网上的答案。另外navicat真的很好用(支持windows、linux和mac OS),以后就用它做mysql图形工具了。

---------------------------------------------------------------------

最终我是用Navicate执行sql语句,导入数据,选择编码格式时,选择以下编码格式,没有出现问题。

可以正常使用的有以下几种编码格式:

936 (ANSI/OEM - Simplified Chinese GBK)

10008 (MAC - Simplified Chinese GB 2312)

20936 (Simplified Chinese GB2312)

 

可以使用,但是会出现乱码的是以下编码格式:

10002 (MAC - Traditional Chinese Big5)

 

推荐使用的编码格式为:

936 (ANSI/OEM - Simplified Chinese GBK)

理由:普通的txt文档默认为ansi的编码格式,所以配合得比较好。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8027次
    • 积分:170
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论