4

我正在编写一个 lisp 程序来获取一个中文网站的网页,我遇到了从二进制流中解析中文单词的问题,我已经有一个包含整个页面的 (unsigned-byte 8) 向量,但是当我把它放到 babel:octets-to-string 中,它会抛出一个异常。

(setf 缓冲区(babel:八位字节到字符串缓冲区:编码:utf-8))

例外是:

非法 :UTF-8 字符从位置 437 开始。[BABEL-ENCODINS 类型的条件:INVALID-UTF8-CONTINUATION-BYTE]

我发现当它遇到一个中文单词时,它必须抛出这个异常。我该如何解决?

4

1 回答 1

6

错误消息说明了一切 - 您的数据中存在无效的 UTF-8 字节序列。

此错误最可能的原因是页面文本本身不是以 UTF-8 编码的,而是针对中文文本的一些其他编码。您应该检查 HTML 'META HTTP-EQUIV' 标记和 'Content-Type' HTTP 响应标头的编码。

于 2011-12-17T16:57:05.920 回答