2014-03-25 1 views
1

예를 들어, utf-8을 사용하여 인코딩 된 데이터가 포함 된 바이트 벡터가 있다고 가정합니다 (런타임까지는 인코딩 이름이 아닐지라도). 어떻게 그 문자를 문자열로 디코딩합니까?clisp : 파일 I/O없이 문자 세트 인코딩 및 디코딩

한 가지 방법은 #'ext:write-byte-sequence을 사용하여 데이터를 파일로 출력 한 다음 뒤집어서 외부 형식 charset : utf-8을 사용하여 파일을 여는 것입니다. 그러나 스크래치 파일없이이 작업을 수행 할 수있는 방법이 있습니까?

편집 204-03-25 세계 협정시 21시 48분 0초 고대의 엄숙한 사용자의 요구에 따라

, 본인은 SDSone zorkmid

+1

동전 +1! :-) – sds

답변

2

에 지불 31.5.7. Converting between strings and byte vectors

인코딩도 할 수 있습니다 해당 인코딩에 따라 문자열과 해당 바이트 벡터 표현간에 직접 변환하는 데 사용됩니다.

(EXT:CONVERT-STRING-FROM-BYTES vector encoding &KEY :START :END) 

주어진 인코딩에 따라 문자열을 처음부터 끝까지 벡터의 시퀀스 (a ( VECTOR (UNSIGNED-BYTE 8)))을 변환하고, 결과 스트링을 리턴한다.
(EXT:CONVERT-STRING-TO-BYTES string encoding &KEY :START :END) 

으로부터 문자열의 시퀀스로 변환 주어진 인코딩에 따라, (VECTOR (UNSIGNED-BYTE 8))을 종료하기 시작하고, 생성 된 바이트 벡터를 리턴한다.

You now owe me 1 zorkmid. :-)

+0

사실 나는 그렇지. 이건 창피해. 나는 여러 번 앞뒤로 얼굴을 찡 그릴 때까지 그 문서를 쳐다 보았다. 지불은 원래 질문으로 편집되었습니다. –