Refsort/Ruby v3.63 released
辞書参照型ソーティング・フィルタ Refsort/Ruby (新しいほうから *1 *2 *3 *4 *5)の改訂版 v3.63 をリリースしました.今回の改訂はごく小規模で,これまで何の対策もしていなかった BOM 付きの UTF-8 でエンコードされた辞書ファイルや入力ファイルを読み込めるようにしたものです.
というのも,最近の Microsoft Excel はワークシートを UTF-8 の CSV ファイルとして書き出せるようになっているのですが,それが問答無用で BOM 付きなのです.うーむ,なぜこのような仕様にするのか理解に苦しむのですが,ワークシートから CSV を書き出して Refsort を使うことは多いでしょうから,それを正しく読み込めるように対策せざるを得ないと考えました.さらに BOM 付きのファイルは原理上そのエンコーディングを判定できるので,辞書や入力ファイルに Refsort 特有のエンコーディング指定オプションを埋め込まなくても,自動的にエンコーディングの設定ができるようにしました.
一方,Refsort は ASCII 互換のエンコーディングだけを扱えるので,例えば UTF-16 や ISO-2022-JP(いわゆる JIS コード)は扱えないのですが,私の浅慮からこれまでその判定をスクリプトに組み込んでいませんでした.これは重要な点なので,エンコーディングが ASCII 互換かどうかを判定するようにしました.
以下にコマンド・コンソールのスクリーンショットを示します.UTF-8 の辞書ファイルを用いることが前提ですが,BOM 付きの UTF-8 で作成した入力ファイルを読み込ませると,BOM 付きであるというメッセージを出したうえで,エンコーディングを自動的に UTF-8 に設定して内容を正しく読み取り,並べ替えを行っています.
次に BOM 付きの UTF-16LE で作成した入力ファイルを読み込ませると,BOM 付きであるというメッセージの直後に,ASCII 互換ではないというメッセージを吐いて,例外を発生させずにお行儀よく終了します.
Refsort/Ruby とそれに関するコンテンツのアーカイブを Microsoft One Drive に置いています.画面右側コラムの “Archive” の中の “Refsort/Ruby Archive” をクリックしていただくと,私の OneDrive 上に設けたライブラリが開きますので,そこから過去分も含めてファイルをダウンロードすることができます.Refsort 本体の “refsort.rb” は “refsort_v363.rb” というファイル名でアップロードされていますので,ダウンロード後に適宜 “refsort.rb” に変更するとよいでしょう.改行コードも CR/LF になっていますので,適宜変更してお使いください.
Refsort on Excel v2.40 や日本鳥類目録 v7 に準拠した辞書ファイル,IOC List v11.2 に準拠した辞書ファイル,最新版に準拠したユーザーズガイドやプレゼンテーション用のスライドもこのアーカイブに収録されていますので,どうかご利用ください.
| 固定リンク | 0
コメント