鱼C论坛

 找回密码
 立即注册
查看: 3725|回复: 6

[已解决]mysql导入json文件报编码错误

[复制链接]
发表于 2017-7-20 16:20:27 | 显示全部楼层 |阅读模式
66鱼币
本帖最后由 gopythoner 于 2017-7-20 16:27 编辑

RT:
用scrapy爬了一份数据输入到了json文件中,编码是UTF-8
然后在MYSQL中创建了一个数据库,编码格式设置是UTF-8
然后,在像MYSQL中导入json的时候就有的数据报错:
具体情况是,数据总量是15万个数据
导入到180多的时候MYSQL就自动停止导入了,报错
PS:这个是昨天晚上做的事情,当时的日志没有存下来,现在想起来问的,所以不能把具体的保存信息发出来
有2中错误,第一种就是在说类似于:....U0000,我查过,这个好像是说空字符?总之不是很理解
第二种报错也是编码错误:我读懂了,大概就是说某些编码不能使用UTF-8解码,这个我就不理解了,因为明明我提取信息的时候是用的UTF-8,而且正常输出了,怎么到导入数据库就不认识了呢?(目测是手机上面的表情)
其实MYSQL还有一个喜欢报错的,那就是说某些字符串太长了,这个情况我只能把varchar的值改得更大,但是并不是很理解这种报错,因为有的信息明明很短,比我设置的字段长度小多了还报这种错误,费解

总之,以上3种报错,特别是前面2种,求解决方案,高分求解!!

后记:感觉MYSQL真的有时候挺烦的,很喜欢报错,打算今天去试试mongodb
最佳答案
2017-7-20 16:20:28
gopythoner 发表于 2017-7-21 09:56
使用代码存储的时候是可以选择utf8-mb4编码的,但是导入的JSON的时候(用的可视化工具Navicat)只能选择 ...

没用过 Navicat 不好给你答案
命令行和 phpmyadmin 都是可以的
mongo 的 utf8 和 MySQL 的 utf8 不是一个概念
https://stackoverflow.com/questions/26167421/is-it-possible-to-store-utf8-mb4-in-mongodb

最佳答案

查看完整内容

没用过 Navicat 不好给你答案 命令行和 phpmyadmin 都是可以的 mongo 的 utf8 和 MySQL 的 utf8 不是一个概念
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-20 16:20:28 | 显示全部楼层    本楼为最佳答案   
gopythoner 发表于 2017-7-21 09:56
使用代码存储的时候是可以选择utf8-mb4编码的,但是导入的JSON的时候(用的可视化工具Navicat)只能选择 ...

没用过 Navicat 不好给你答案
命令行和 phpmyadmin 都是可以的
mongo 的 utf8 和 MySQL 的 utf8 不是一个概念
https://stackoverflow.com/questions/26167421/is-it-possible-to-store-utf8-mb4-in-mongodb
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-20 22:09:53 | 显示全部楼层
你说了这么多, 不贴报错没办法给你解决
手机表情存储选utf8-mb4
http://ourmysql.com/archives/1402
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-21 09:56:39 | 显示全部楼层
hldh214 发表于 2017-7-20 22:09
你说了这么多, 不贴报错没办法给你解决
手机表情存储选utf8-mb4

使用代码存储的时候是可以选择utf8-mb4编码的,但是导入的JSON的时候(用的可视化工具Navicat)只能选择格式UTF-8没有utf8-mb4格式可以选择

另外,听说mongodb的默认编码也会UTF-8,那意思是mongodb也不能存放手机表情?

编码是个大坑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-21 15:25:08 | 显示全部楼层
hldh214 发表于 2017-7-21 14:29
没用过 Navicat 不好给你答案
命令行和 phpmyadmin 都是可以的
mongo 的 utf8 和 MySQL 的 utf8 不是一 ...


我感觉你的这个答案可以得最佳
不过,我需要去实验一下命令行改动编码,
然后mongodb的utf-8应该是可以适应emoji的那种utf-8吧,是的就好说
稍后给最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-21 23:06:14 | 显示全部楼层
hldh214 发表于 2017-7-20 22:09
你说了这么多, 不贴报错没办法给你解决
手机表情存储选utf8-mb4
  1. [Msg] [Imp] Import start
  2. [Msg] [Imp] Import type - JSON file
  3. [Msg] [Imp] Import from - F:\MySpiders\scrapy-tieba\Tieba\item2.json
  4. [Msg] [Imp] Create table [item2]
  5. [Msg] [Imp] Import table [item2]
  6. [Err] [Row1] [Imp] Source error: Insert: 197
  7. [Err] [Row1] [Imp] Invalid unicode hex character "U+0000"
复制代码


看报错,最后一条,我查了这个意思好像是说NULL什么的,但是没有找到错误原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-22 16:24:12 | 显示全部楼层
gopythoner 发表于 2017-7-21 23:06
看报错,最后一条,我查了这个意思好像是说NULL什么的,但是没有找到错误原因

mongodb我已经导入了,成功导入
MySQL还是会报错,我查了用命名行创建表格和导入json,好像是要借助第三方的工具来完成的
所以,最后决定还是写个代码跑起来吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 13:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表