gpt4 book ai didi

json - CL-JSON 通过以 ASCII 格式输出 Unicode 转义字符串来对 Unicode 字符进行编码。我怎样才能覆盖这个?

转载 作者:行者123 更新时间:2023-12-05 00:52:20 31 4
gpt4 key购买 nike

我正在使用 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 格式转义,但不幸的是它缺少我需要的功能,所以它不是一个选项。

最佳答案

我知道这是一个临时解决方案,但我通过重新定义适当的函数来更改 CL-JSON 源,而不是将 ASCII 之外的 unicode-escape 范围。该函数名为 write-json-chars,它位于源代码中的文件 encoder.lisp 中。

关于json - CL-JSON 通过以 ASCII 格式输出 Unicode 转义字符串来对 Unicode 字符进行编码。我怎样才能覆盖这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12304702/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com