babel: выбрасывает октеты в строку INVALID-UTF8-CONTINUATION-BYTE - PullRequest
3 голосов
/ 17 декабря 2011

Я пишу программу lisp для извлечения веб-страницы китайского веб-сайта, я сталкиваюсь с проблемой синтаксического анализа китайских слов из двоичного потока, у меня уже есть вектор (unsigned-byte 8), содержащий всю страницу,но когда я помещаю его в babel: octets-to-string, он выдает исключение.

(буфер setf (babel: буфер октетов в строку: encoding: utf-8))

Исключение составляет:

Недопустимо: символ UTF-8, начинающийся с позиции 437. [Условие типа BABEL-ENCODINGS: INVALID-UTF8-CONTINUATION-BYTE]

Я считаю, что когда оно встречает китайское слово, оно должно исключить это исключение.Как я могу решить это?

1 Ответ

6 голосов
/ 17 декабря 2011

Сообщение об ошибке говорит обо всем - в ваших данных есть недопустимая последовательность байтов UTF-8.

Наиболее вероятная причина этой ошибки - то, что сам текст страницы не закодирован в UTF-8, но некоторыедругая кодировка для китайского текста.Вы должны проверить HTML-тег «META HTTP-EQUIV» и «Content-Type» HTTP-заголовок ответа для кодирования.

...