これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド preconv です。
プログラム:
NAME
preconv - 入力ファイルのエンコーディングを GNU troff が理解できるものに変換します
SYNOPSIS
事前変換 [-博士] [-e エンコーディング] [ファイル ...]
事前変換 -h | - 助けて
事前変換 -v | - バージョン
間に空白を入れることも可能です -e コマンドラインオプションとそのパラメータ。
DESCRIPTION
事前変換 読み込み ファイル そしてそのエンコーディングを GNU 形式に変換します troff(1) 加工できる、
データを標準出力に送信します。 現在、これは ASCII 文字と
「\[uXXXX]」エンティティ。「XXXX」は XNUMX ~ XNUMX 桁の XNUMX 進数です。
Unicode 入力コードを表します。 通常は、 事前変換 で呼び出す必要があります -k と -K
のオプション グロフ.
OPTIONS
-d デバッグ メッセージを標準エラー (主に使用されているエンコーディング) に出力します。
-Dエンコーディング
すべてが失敗した場合は、デフォルトのエンコーディングを指定します (以下を参照)。
-eエンコーディング
入力エンコーディングを明示的に指定し、他のすべてのメソッドをオーバーライドします。 これは対応します
〜へ グロフ's -Kエンコーディング オプション。 このスイッチがないと、 事前変換 アルゴリズムを使用します
以下の説明に従って入力エンコーディングを選択します。
- 助けて
-h ヘルプメッセージを印刷します。
-r .lf リクエストを追加しないでください。
- バージョン
-v バージョン番号を印刷します。
USAGE
事前変換 は、次のアルゴリズムを使用して入力エンコーディングを見つけようとします。
1. オプションで入力エンコーディングを明示的に指定した場合 -e、 これを使って。
2. それ以外の場合は、入力が バイト 注文 Mark Hodder (BOM、以下を参照)。
見つかったら、それを使用してください。
3. 最後に、既知の情報があるかどうかを確認します。 コーディング タグ (下記を参照) 最初のいずれかで
または XNUMX 番目の入力行。 見つかったら、それを使用してください。
4. すべてが失敗した場合は、オプションで指定されたデフォルトのエンコーディングを使用します。 -D、現在では
locale、またはロケールが 'C'、'POSIX'、または空に設定されている場合は 'latin1' (この順序)。
なお、 グロフ プログラムは、 GROFF_ENCODING 環境変数
最終的にはオプションに拡張されました -k.
バイト 注文 Mark Hodder
Unicode 標準では、文字 U+FEFF をバイト オーダー マーク (BOM) として定義しています。 もう一方の
ただし、値 U+FFFE は Unicode 文字ではないことが保証されています。 これにより、検出が可能になります
データ ストリーム内のバイト順序 (ビッグ エンディアンまたはローエンディアン)、および MIME
エンコーディング「UTF-16」および「UTF-32」では、データ ストリームが U+FEFF で始まることが必須です。
同様に、「UTF-8」としてエンコードされたデータ ストリームは、BOM で始まる場合があります (処理を容易にするため)。
UTF-16 および UTF-32 との間の変換)。 すべての場合において、バイト オーダー マークは次のとおりです。 部
データの一部ですが、エンコード プロトコルの一部です。 言い換えると、 事前変換の出力はそうではありません
それを含んでください。
入力データの先頭にない U+FEFF が実際に出力されることに注意してください。 それはその後、
「ゼロ幅ノーブレークスペース」文字の意味 - 通常は必要ありません
グロフ.
コーディング タグ
複数の文字エンコーディングをサポートするエディタでは、入力内にタグが必要です
ファイルのエンコーディングをマークします。 正しい入力エンコーディングを推測することは可能ですが、
より大量のデータを表すヒューリスティック アルゴリズムの助けを借りて、
自然言語はまだ推測にすぎません。 さらに、すべてのアルゴリズムは簡単に失敗します。
入力が短すぎるか、自然言語を表していません。
これらの理由から、 事前変換 コーディングタグ規則を(いくつかの制限付きで)次のようにサポートします。
によって使用される GNU Emacs と XEmacs (そしておそらく他のプログラムも)。
コーディングタグ GNU Emacs と XEmacs いわゆる File Variables. 事前変換
最初の troff コメントに入れる必要がある次の構文形式を認識します。
またはXNUMX行目。
-*- tag1: value1; tag2: value2; ... -*-
に関連する唯一のタグ 事前変換 は、以下にリストされている値を取ることができる「coding」です。
これは、次のことを示す行の例です。 Emacs troff モードでファイルを編集し、latin2 を
そのエンコーディング。
.\" -*- モード: troff; コーディング: latin-2 -*-
次のリストは、サポートされているすべての MIME コーディング タグ (小文字または大文字) を示しています。
事前変換; このリストはソース内にハードコーディングされています。
big5、cp1047、euc-jp、euc-kr、gb2312、iso-8859-1、iso-8859-2、iso-8859-5、
iso-8859-7、iso-8859-9、iso-8859-13、iso-8859-15、koi8-r、us-ascii、utf-8、utf-16、
utf-16be、utf-16le
さらに、次の他のタグのハードコードされたリストが認識され、最終的には
上記のリストの値にマップします。
ascii、 chinese-big5、 chinese-euc、 chinese-iso-8bit、 cn-big5、 cn-gb、 cn-gb-2312、
cp878、csascii、csisolatin1、キリル文字-iso-8bit、キリル文字-koi8、euc-china、euc-cn、
euc-japan、euc-japan-1990、euc-korea、greek-iso-8bit、iso-10646/utf8、
iso-10646/utf-8、iso-latin-1、iso-latin-2、iso-latin-5、iso-latin-7、iso-latin-9、
日本語-euc、日本語-iso-8bit、jis8、koi8、韓国語-euc、韓国語-iso-8bit、latin-0、
latin1、latin-1、latin-2、latin-5、latin-7、latin-9、mule-utf-8、mule-utf-16、
mule-utf-16be、mule-utf-16-be、mule-utf-16be-署名付き、mule-utf-16le、
mule-utf-16-le、mule-utf-16le-with-signature、utf8、utf-16-be、
utf-16-be-署名付き、utf-16be-署名付き、utf-16-le、
utf-16-le-署名付き、utf-16le-署名付き
これらのタグはから取得されます GNU Emacs と XEmacs、いくつかのエイリアスとともに。 トレーリング
コーディングタグの「-dos」、「-unix」、および「-mac」サフィックス(行末規則を指定します)
ファイルで使用されている) は、上記のタグとの比較が行われる前に削除されます。
iconv 問題
事前変換 それ自体では、latin-1、cp1047、UTF-8 の XNUMX つのエンコーディングのみをサポートします。 他のすべて
エンコーディングは iconv ライブラリ関数。 コンパイル時に検索され、
有効かどうかをチェックしました iconv 実装; 「preconv --version」を呼び出すと、
iconv 使用されている。
onworks.net サービスを使用してオンラインで preconv を使用する