【发布时间】:2017-05-19 16:40:00
【问题描述】:
我正在尝试使用 Apache Drill 对 JSON 文件运行 SELECT 查询。我收到不同文件的各种错误。所有错误都是 JSON 解析错误:
错误:DATA_READ 错误:解析 JSON 时出错 - 无效的 UTF-8 中间字节 0x3f
错误:DATA_READ 错误:解析 JSON 时出错 - 非法不带引号的字符((CTRL-CHAR,代码 13)):必须使用反斜杠转义才能包含在字符串值中
错误:DATA_READ 错误:解析 JSON 时出错 - 非法字符((CTRL-CHAR,代码 0)):只有常规空格(\r、\n、\t)
对于由于某些字符(例如 '趨勢ç§'技å')出现的第一个错误:我已经在下面尝试过:
- 在包含无效 UTF-8 字符的字段上使用
Convert_To和Convert_From(不起作用。不要认为这些函数是为此目的而设计的。) - 将
-Dsaffron.default.charset=UTF-16LE添加到conf/drill-env.sh中的DRILL_JAVA_OPTS(没有用,因为如果您的查询而不是您的数据包含无效的UTF-8 字符,则使用此选项) - 使用 Notepad++ 将文件编码更改为 UTF-8(没有用。本来希望这能用)
- 尝试使用 Notepad++ 将文件编码更改为不带 BOM 的 UTF-8(Notepad++ 无法转换。保存后,再次打开时为 ANSI)
【问题讨论】:
标签: json utf-8 character-encoding apache-drill