Rails JSON 导入 - 检测到 unicode 字符

Rails JSON Import - unicode characters detected

我有数千个 json 文件是从旧的 php 应用程序创建的,这些文件将被导入 rails 正在开发的新版本中。

在 php 中,我 运行 json_encode($object) 在保存之前对项目进行编码。

这是正在制作的 json 的编辑后版本。描述字段是我看到 unicode 字符的地方。

{ "ID": "", "parentID": "", "formID": "", "defaultProject": "", "data": { "title": "", "idno": "", "date": "2016-11-09", "creator": [ ], "contributor": [ ], "itemNumber": "", "oclcNumber": "", "publisher": "", "publisherLocation": "", "description": "<..contents removed> family\u00e2\u0080\u0099s land <..contents removed> \r\n", "subject": [ ], "type": "", "provenanceDpla": "", "rights": "", "location": [ ], "timePeriod": "", "format": [ ], "language": [ ], "source": "", "extent": "" } }, "metadata": "", "idno": "", "modifiedTime": "", "createTime": "", "modifiedBy": "", "createdBy": "", "publicRelease": "" }

我们遇到问题的部分在描述字段中。原来的样子。

当我查看导入的记录时,这部分看起来像。

正在检查 rails 控制台中的项目,看起来像这样。

我正在使用 @hash = JSON.parse(File.read(file)) 有没有人对如何处理这个问题有很好的建议。我相信我们在导出内容时会发现更多。

在 php 导出中,我 运行 $utf_encoded = mb_convert_encoding( $item, 'UTF-8' ); 以确保所有内容都编码为 utf-8,但由于某种原因,这会产生上述结果。删除它给了我一个 \u2019 而不是 \u00e2\u0080\u0099 的 unicode,它导入到新的 rails 应用程序中工作正常。