導入
Redmineにはテキストファイルを画面上で閲覧することができる機能があります。どうやってテキストファイルを判別しているかを調査してみました。Redmineを利用している際にファイルによって、テキストプレビューができたりできなかったりする場合の参考にしてみてください。
判断ロジック実装箇所
ファイル:Redmineインストールディレクトリ/lib/redmine/scm/adapters/abstract_adapter.rb
メソッド:def self.binary?(data)
バイナリファイルの判断条件
- データが0の場合
- NULL文字が含まれている場合
- 3割以上AsciiSymbolsを含む場合
まとめ
なんとなく問題がなさそうな気もしますが、日本語圏で利用する場合は、文字コードを間違って設定していて正常に読み込めなかった場合等も該当しそうなロジックになっていますね。