common lisp porting of libguess-1.0 that is a character set detection library.
Common Lisp
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
t
.gitignore
README.markdown
guess-test.asd
guess.asd

README.markdown

Guess - a character set detection library.

guess は文字コードの自動判別ライブラリである libguess-1.0 を common lisp 向けにポーティングしたものです.

LISPUSER Common Lisp と 日本語 と 文字コード の onjo さんが ポーティングしたライブラリを libguess v1.0 向けに修正し、日本語以外の文字コードの判別ができるようにしています.

Installation

  1. quicklisp の path が通っているところにライブラリを落とす.

    git clone git://github.com/zqwell/guess.git

  2. quicklispでライブラリをロード.

    (ql:quickload :guess)

Usage

サンプルコード

文字コードを変換するために事前に iconv をインストールしておきます.

(ql:quickload :iconv)
  • iconv関数:

    (iconv:iconv 変換元の文字コード 変換後の文字コード byte配列) => 変換後のbyte配列

日本語の文字コードを判別する

CL-USER> (guess:CES-GUESS-FROM-VECTOR (string-to-octets "明日は明日の風が吹く") :jp)
:UTF-8

CL-USER> (guess:CES-GUESS-FROM-VECTOR (iconv:iconv :utf-8 :iso-2022-jp (string-to-octets "明日は明日の風が吹く")) :jp)
:JIS

CL-USER> (guess:CES-GUESS-FROM-VECTOR (iconv:iconv :utf-8 :euc-jp (string-to-octets "明日は明日の風が吹く")) :jp)
:EUC-JP

CL-USER> (guess:CES-GUESS-FROM-VECTOR (iconv:iconv :utf-8 :sjis (string-to-octets "明日は明日の風が吹く")) :jp)
:SJIS

韓国語の文字コードを判別する

CL-USER> (guess:CES-GUESS-FROM-VECTOR (string-to-octets "내일은 내일 바람이 분다") :kr)
:UTF-8

CL-USER> (guess:CES-GUESS-FROM-VECTOR (iconv:iconv :utf-8 :euc-kr (string-to-octets "내일은 내일 바람이 분다")) :kr)
:EUC-KR

CL-USER> (guess:CES-GUESS-FROM-VECTOR (iconv:iconv :utf-8 :johab (string-to-octets "내일은 내일 바람이 분다")) :kr)
:JOHAB

提供関数詳細

ces-guess-from-vector vector scheme => detected-encoding

Arguments and Values:

  • vector---判別する文字列をbyte配列に変換したもの

  • scheme---識別する言語圏
    日本語圏以外にも下記をサポートしています.

    • :jp -- japanese
    • :tw -- taiwanese
    • :cn -- chinese
    • :kr -- korean
    • :ru -- russian
    • :ar -- arabic
    • :tr -- turkish
    • :gr -- greek
    • :hw -- hebrew
    • :pl -- polish
    • :bl -- baltic
  • detected-encoding---自動判別した文字コード