文字コード
読み取り側はファイルの文字コードを知っているのでしょうか。それとも推測でしょうか。
text-encodingプリセットは、この疑問に対する本物のテストファイル一式を1つのコマンドで作り、その隣に、システムが各ファイルにどう反応すべきかを示すmanifest.jsonを置きます。以下はすべて、このバージョンの既定値でプログラムから読み取ったものです。
普通は何を見つけますか。
- UTF-8だと決めつけて、UTF-16のファイルを3文字に1文字だけ、または四角の列として表示するリーダー
- バイトオーダーマークが内容として読まれ、取り込みの最初のフィールドが余分な3文字で始まる問題
- 先頭バイトから文字コードを推測し、長いファイルでは違う推測をするインポーター
- 各行の後に空行が入って行分割されるCRLFのファイル、または最後のフィールドに残るキャリッジリターン
セットには何が入っていますか。
既定値で、tfg preset show text-encodingが報告するとおりです。
| ファイル数 | 20 |
|---|---|
| レシピ内のターゲット数 | 20 |
| 合計サイズ | 81 920 B |
| 形式 | csv, log, md, txt, xml |
そして、そのセットのマニフェストがシステムに期待していること:
| 期待 | 意味 | ファイル数 |
|---|---|---|
accept | システムはこのファイルを受け入れるべきです。 | 10 |
unspecified | システムのルール次第です。あなたが決め、実際に起きることが意図どおりかを確認してください。 | 10 |
何を変更できますか。
| 設定 | 値 | 既定値 | 動作 |
|---|---|---|---|
--sample |
2mbのようなサイズ | 4kb |
セット内の各ファイルの大きさです。UTF-16は1文字に2バイトを使うため、奇数は拒否されます。 |
どう実行しますか。
セットのコストを確認し、作成し、または編集用にそのレシピを取り出します。
tfg preset show text-encoding
tfg generate --preset text-encoding --out ./text-encoding
tfg preset eject text-encoding > text-encoding.yaml
または、テストの隣に置いた自分のレシピで、これを土台にします。
version: 1
extends: preset:text-encoding