我正在Windows 10上从DOS提示符下使用Apache Drill查询json格式的数据。我正在关注他们的guide。
我有一个非常基本的json对象{"år":"2018", "æøå":"ÆØÅ"}
,当我从apache钻查询时,输出未正确显示。
select * from dfs.`C:\Users\foo\Downloads\utf8.json`;
+-------+------+
| Õr | µ°Õ |
+-------+------+
| 2018 | ãÏ┼ |
+-------+------+
1 row selected (0,114 seconds)
文件以UTF-8格式保存(使用崇高的文本)。我还尝试过将它保存在带有BOM的UTF-8中,但这没什么用。
使用this SO-thread中所述设置环境变量
set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
没有帮助。
编辑:
发布后不久,我发现了一个SO线程,建议将Windows代码页change设置为65001(utf-8)。这会显示正确的字母,但也会阻止命令历史记录(向上箭头)正常工作。
chcp 65001
sqlline.bat -u "jdbc:drill:zk=local"
select * from dfs.`C:\Users\cgu\Downloads\utf8.json`;
+-------+------+
| år | æøå |
+-------+------+
| 2018 | ÆØÅ |
+-------+------+