Archive for the 'UniversalDetector' Category

2015/10/03 UniversalDetectorで文字コード判定

オープンソースの文字コード判別フレームワーク「UniversalDetector」の機能を用いて与えられたテキストファイルの文字コードを判定するAppleScriptです。

たまたまGitHubでUniversalDetectorを見つけたので、ダウンロードしてビルドしてAppleScriptから呼び出して試してみました。AppleScriptで自動判定したもの(左側)との比較を行った結果がこれです(↓)。

btable.png

日本語のテキストに限定して試してみると、なかなかつらいです。AppleScriptだけで判定したほうが良好な結果が出ています。

AppleScript名:UniversalDetectorで文字コード判定
– Created 2015-10-03 by Takaaki Naganoya
– 2015 Piyomaru Software
use AppleScript version “2.5″
use scripting additions
use framework “Foundation”
use framework “UniversalDetector”
–https://github.com/JanX2/UniversalDetector

set aPath to (POSIX path of (choose file))
set aStr to current application’s NSString’s stringWithString:aPath
set aDetector to current application’s UniversalDetector’s new()
aDetector’s analyzeContentsOfFile:aStr
set aStr to current application’s NSString’s localizedNameOfStringEncoding:(aDetector’s encoding())

–>  (NSString) “日本語(EUC)”
–>  (NSString) “日本語(ISO 2022-JP)”
–>  (NSString) “日本語(Shift JIS)”
–>  (NSString) “Unicode(UTF-8)”
–>  (NSString) “キリル文字(Windows)” –NG。本当はUTF-16 no BOM
–>  (NSString) “中国語(GB 18030)”–NG。本当はUTF-16BE
–>  (NSString) “Unicode(UTF-16)”

set bStr to aDetector’s MIMECharset()

–>  (NSString) “EUC-JP”
–>  (NSString) “ISO-2022-JP”
–>  (NSString) “Shift_JIS”
–>  (NSString) “UTF-8″
–>  (NSString) “windows-1251″–NG
–>  (NSString) “gb18030″–NG
–>  (NSString) “UTF-16″

set aNum to (aDetector’s confidence()) * 100
–>  100.0–”EUC-JP”
–>  100.0–”ISO-2022-JP”
–>  100.0–”Shift_JIS”
–>  100.0–”UTF-8″
–>  5.271286144853–UTF-16 no BOM
–>  100.0–NGだが100%といっている
–>  100.0– “UTF-16″

★Click Here to Open This Script