UTF-8字母显示不正确

时间:2018-07-24 12:00:25

标签: java windows utf-8 cmd apache-drill

我正在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  | ÆØÅ  |
+-------+------+

0 个答案:

没有答案