gpt4 book ai didi

unicode - Lisp:在将八位字节流转换为格式错误的字节的 EUC-JP 时,需要帮助从 SBCL 获得正确的行为

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:51 25 4
gpt4 key购买 nike

以下在这种特殊情况下不起作用,提示你给它的任何东西都不是一个字符。

(handler-bind ((sb-int:character-coding-error
#'(lambda (c)
(invoke-restart 'use-value #\?))))
(sb-ext:octets-to-string *euc-jp* :external-format :euc-jp))

其中 *euc-jp* 是一个包含 EUC-JP 编码文本二进制的变量。

我也尝试过 #\KATAKANA_LETTER_NI 而不是 #\?也只是“”。到目前为止没有任何效果。

如有任何帮助,我们将不胜感激!

编辑:要重现*EUC-JP*,获取http://blogs.yahoo.co.jp/akira_w0325/27287392.html使用 drakma。

最佳答案

在 SBCL 1.0.18 的 mb-util.lisp 中有一个表达式,如下所示:

(if code
(code-char code)
(decoding-error array pos (+ pos bytes) ,format
',malformed pos))

我不太熟悉 SBCL 的内部结构,但这看起来像是一个错误。结果返回一个字符,而替代项返回一个字符串(无论您通过 USE-VALUE 给它什么,它总是通过 STRING 转换成字符串函数;参见 octets.lispDECODING-ERROR 的定义。

关于unicode - Lisp:在将八位字节流转换为格式错误的字节的 EUC-JP 时,需要帮助从 SBCL 获得正确的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/420300/

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