我正在使用 CL-JSON 对对象进行编码。它以 ASCII 格式吐出编码字符串,非 ASCII 字符被写为“\uxxxx”形式的 ASCII 字符序列。结果是即使我使用外部格式打开输出文件流:utf-8,该文件也只包含 ASCII 字符。当我尝试使用例如 notepad++ 查看它时,我无法将其转换为 Unicode,因为现在所有数据都只是 ASCII(甚至是“\uXXXX”序列)。我想知道是否有一个编辑器可以自动将文件转换为 Unicode 并识别这些转义序列,或者是否有办法告诉 CL-JSON 将输出字符保留为 Unicode。有任何想法吗?
编辑:这里有更多信息:
CL-USER>(with-open-file (out "dump.json"
:direction :output
:if-does-not-exist :create
:if-exists :overwrite
:external-format :utf-8)
(json:encode-json '("abcd" "αβγδ") out)
(format out "~%"))
CL-USER>(quit)
bash$ file dump.json
dump.json: ASCII text
bash$ cat dump.json
["abcd","\u03B1\u03B2\u03B3\u03B4"]
bash$ uname -a
Linux suse-server 3.0.38-0.5-default #1 SMP Fri Aug 3 09:02:17 UTC 2012 (358029e) x86_64 x86_64 x86_64 GNU/Linux
bash$ sbcl --version
SBCL 1.0.50
bash$
编辑2:
YASON 做了我需要的,输出字符而不以 \uXXXX 格式转义它们,但不幸的是它缺少我需要的功能,所以它不是一个选项。