| New MacLab. | MacLab. News Blog | English |
Text Encoding Object
インターネット上におけるテキストの処理には不可欠な文字コードの変換を行うスクリプトオブジェクト共有ライブラリです。
AS Runnerで実行するとウィザード形式で主なサブルーチンについての解説が表示されます。
文字コード判定・変換ルーチン
- ConvCode(text, pre, post)
-
テキストの文字コードをpreからpostに変換します。preを""(空白文字列)にすると文字コードを自動判定して任意の文字コードに変換します。文字コードの判別と変換のルーチンを組み合わせてConvCode(msg, GetCode(msg), post)とするよりも処理が速いことがあります。preとpostの文字コードの指定はMIME名(例:Shift_JIS),"SJIS"などの簡略表示,SJISなどのTanaka's osaxの定数が利用できます。
Text Encoding Objectは通常ではテキストデータの中のすべての文字を見て文字コードを判定・変換するため,処理に時間がかかります。
文字コードの判定および変換機能を持つスクリプティング機能追加がある場合,処理が高速化されます。対応するスクリプティング機能追加は後述します。
判定するデータがHTMLまたはXMLの場合は,タグによる文字コード指定を優先するため判定にかかる時間が大幅に短くなります。この場合は,Unicodeを含めたすべての文字コードが判定可能です。
Unicodeの文字コードの自動判定はHTMLまたはXMLの場合のみ可能です。
Unicodeの文字列の変換にはMacOS 8.5以降またはTEC OSAXとText Encoding Converterが必要です。
Mac OS X 10.3以降の環境ではシステムが持つ変換機能であるiconvを使用するので、UTF-8など、ほぼすべての文字コードの間で自由に文字コードを変換できます。
- GetCode(text)
-
文字コードを判定します。HTMLやXMLの場合はタグをみて文字コードを判定するので、判定が高速化されます。この際に、古い表記であるx-sjisとx-euc-jpはそれぞれ標準MIME名であるShift_JISとEUC-JPに変換されます。
- Code2SJIS(text)
-
テキストの文字コードを判定してシフトJIS,改行コードをMacintosh用に変換します。Mac OS X以降での使用はおすすめできません。
JIS・EUC
↓
シフトJIS
(↑)
Unicode
- JIS2SJIS(text)
-
JISコードの文字列をシフトJISに変換します。Mac OS X以降での使用はおすすめできません。
- EUC2SJIS(text)
-
EUCコードの文字列をシフトJISに変換します。Mac OS X以降での使用はおすすめできません。
改行コード変換ルーチン
Macintoshの改行コードは,Mac OS 9以前はCRのみで,Mac OS X以降ではUNIXと同じLFのみです。これをDOSの改行コードと変換します。
- CRLF(text)
-
すべての改行コードをMacintoshの改行コードに変換します。
- DOS2Mac(text)
-
改行コードをCR+LFからMacintoshの改行コードに変換します。
- Mac2DOS(text)
-
Macintoshの改行コードをCR+LFに変換します。
CR+LF (Win)
↑↓
CR (Mac OS 9), LF (Mac OS X)
↑
LF (Unix)
URL変換ルーチン
- encodeURL(text)
-
文字列のURLエンコードを行います。Shift JISからのエンコードを想定しています。
- decodeURL(text)
-
URL文字列のデコードを行います。
URLエンコード済みテキスト
↑↓
Shift JISテキスト
表変換ルーチン
タブ区切りテキスト(拡張子.TSV、.ASCII、.TXT、.TABなど),コンマ区切りテキスト(拡張子.CSV),AppleScript用のリストオブジェクト(構造化されたオブジェクトデータ)の表データの形式を相互に変換します。
- TSV2CSV(text)
- TSV2List(text)
- List2TSV(list)
- List2CSV(list)
- CSV2TSV(text)
- CSV2List(text)
入力されるデータの改行コードに関わらず,出力されるデータの改行コードはMacintoshの改行コードになっています。出力されたデータをWindowsなどで利用するためには改行コードの変換を行って下さい。Shift JISのデータを想定しています。
コンマ区切りテキスト
↑↓
タブ区切りテキスト(←→)HTML
↑↓
リストオブジェクト
(↑↓)
Data Component Object
タブ区切りテキストおよびコンマ区切りテキストはテキストファイルに保存できますが,リストオブジェクトは
Data Component Objectフォーマットのバイナリファイルとしてのみ保存することができます。
なお,
HTML Conv Objectはタブ区切りテキスト(TSV)とHTMLの相互変換ルーチンを持ちます。この機能は
Text2Tableにおいて利用されています。
バージョン1.2以前において,タブ区切りテキストをASCIIテキストと呼んでいたため,現在のところは以下のルーチンも使用できます。ASCIIをTSVと読み替えてください。
- ASCII2CSV(text)
- ASCII2List(text)
- List2ASCII(list)
- CSV2ASCII(text)
外字変換ルーチン
Windowsなどで使用されているPC98外字セット(以下,Win外字)とMacintoshなどで使用されている通産省外字セット(以下,Mac外字)を相互変換します。Mac外字を外字に依存しないテキストに変換することもできます。ちなみに,Macintoshでも漢字Talk6以前のシステムやPostScriptプリンタではWin外字が使用されています。ただし,一部には対応していない外字もあります。改行コードの変換も自動的に行われます。
- Win2Mac(text)
-
Win外字をMac外字に変換します。
- Mac2Win(text)
-
Mac外字をWin外字に変換します。
- Ch2Text(text)
-
Mac外字を標準テキストに変換します。
- iMode_Support(text)
-
i-mode絵文字をテキストに変換します。
Win外字
↑↓
Mac外字
↓
標準テキスト
↑
i-mode外字
日本語構文解析ルーチン
AppleScriptから日本語を解析するためのルーチンです。
- solvePhrase(text)
-
文章を文節に区切ります。
10月23日はMac OS X 10.3 Pantherの発売日です。
↓
{"10月23日は","Mac OS X 10.3 Pantherの","発売日です", "。"}
- solveWord(text)
-
文節から語幹を取り出します。
10月23日は
↓
10月23日
スクリプティング機能追加への対応
以下のスクリプティング機能追加をインストールしておくと機能が拡張されます。
- Clipboard
-
文字コード変換の処理速度が向上します。
- Conv Jcode OSAX
-
文字コード変換の処理速度が向上します。
- Tanaka's osax
-
文字コード判定の処理速度が向上します。文字コード変換の処理速度が向上します。URLエンコード・デコードの処理速度が向上します。
- TEC OSAX
-
文字コード判定の処理速度が向上します。OSのバージョンに関わらずUnicodeを含む文字コードの変換が行えます。文字コードの変換の処理速度が向上します。
- Akua Sweets
-
Unicodeを含む文字コードの判定と変換がサポートされる予定ですが,現行バージョンでは未対応です。
なお、Mac OS Xにおいてはiconvも利用可能です。
Text Conv Objを利用したサンプルスクリプト Text Conv-Jは以下のページに移動しました。
Text Conv-J
変更履歴
- ver.1.84
- Mac OS X Panther以上でFileVaultを使用しているとiconvによる文字コード変換が行えない問題を解決しました。
- ver.1.83
- アプリケーションパッケージに対応。
- ver.1.82
- solvePhrase 1.3、solveWord 1.1。「」などをひとつの語として扱うようになりました。
- ver.1.81
- 文字列置換サブルーチンのバグを解消(2.5)。多くのルーチンに影響します。
- ver.1.8
- Mac OS X用のiconvによる文字コード変換の利用を実装。
- ver.1.71
- 文節から語幹を取り出す文節解析ルーチンを実装。
- ver.1.7
- 日本語の文章を文節に区切ってリストで返す構文解析ルーチンを実装。
- ver.1.64
- Mac OS Xにおいてクリップボードから取得した文字列データが正常にURL処理できない問題に対応。
- ver.1.63
- Mac OS Xにおいて文字コード変換にミスが発生する問題を解決。
- ver.1.62
- Mac OS Xにおいて文字コード判定にミスが発生する問題を解決。Mac OS XにおいてURLデコードにミスが発生する問題を解決。URLエンコードでエスケープする文字種を変更。
- ver.1.61
- Mac OS XにおいてURLエンコードにミスが発生する問題を解決。
- ver.1.6
- Mac OS Xにおいては内部処理を Unicodeで統一。
- ver.1.54
- 規格外のURLエンコードされた文字列も処理できるように修正。
- ver.1.53
- Mac OS Xにおける相対パスの取り扱いについての修正。拡張子付きの共有ライブラリに対応。
- ver.1.52
- 開発環境をMac OS Xに移行。ライブラリの読み込みルーチンのMac OS 9.2.2対応のための修正。
- ver.1.512
- Libフォルダ内の外字データを参照できなかった問題を解決しました。
- ver.1.511
- 新しい文字列置換ルーチンの元で改行コード変換ルーチンが空のデータを返す問題を解決。
- ver.1.51
- 文字列置換ルーチンをアップデートして,1000行以上のテキストを処理しようとするとエラーとなる問題を修正。
- ver.1.5
- XML,HTMLの文字コード判定の精度をさらに向上。OSAXの利用の優先順位の見直しにより通常のテキストの文字コード判定と変換も高速化。外字変換表を別ファイルに独立させて対応する外字の種類を拡大。Unicodeを含む汎用の文字コード変換ルーチンを追加。TSV・CSVの末尾に余分な改行がついていた場合の問題を解決。
- ver.1.4
- XML,HTMLの文字コード判定の速度と精度を向上。内部処理の文字コードの呼称を標準的なMIMEエンコード名に変更。
- ver.1.3
- 内部の改行コードの処理をMac OS X対応に変更。XMLの文字コード判定機能を追加。Unicodeへの対応を強化。ASCIIタブ区切りテキストの呼称をTSVに変更しルーチン名も変更。
- ver.1.2
- コンマ区切りテキストCSVのデータ解析の精度を向上。
- ver.1.1
- i-mode外字,Win外字などの外字変換機能を追加。
- ver.1.0
- 最初の公式リリース。
| Index |
Copyright(C) SUZUKI Kazufumi, All rights reserved.