localefilter.rb — Locale Filter
Summary
日本語を端末の Locale に対応した文字コードに変換して出力する, NKF
のフロントエンド.
Example
Used as Object
require 'localefilter'
LocaleFilter.env2num('LANG')
# => "環境変数 '$LANG' から取得した文字コード"
a = 'テスト'
b = 'てすと'
lf = LocaleFilter.new
lf.print a, "\n"
lf.puts b
# => 文字コード "@locale" で "@device" に出力される
lf.locale = 'euc'
lf.stdout "ほげほげ\n"
# => 文字コードを "EUC-JP" に設定して "STDOUT" に出力
lf.device = 'stderr'
lf.puts a, b
# => 出力先を "STDERR" に設定して出力
file = File.open('/tmp/output.txt', 'w')
lf.device = file
lf.puts a, b
# => 出力先を "file" に設定して出力
lf.device = 'stdout'
file.close
# => 出力先を "STDOUT" に戻す
Used as Module
LocaleFilter::PrintWrapper
を参照.
Character Codes
対応文字コードは以下の通り. (UTF-8, UTF-16 は Ruby Version 1.8.2
以降で対応)
* Shift_JIS
* EUC-JP
* JIS (ISO-2022-JP)
* UTF-8
* BOM 無し(いわゆる UTF-8N) のみ対応
* UTF-16
* Endian や BOM の指定は未対応 (NKF#nkf のデフォルトのみ)
Methods
Public Class Methods (extended)
LocaleFilter::CodeConverter,
LocaleFilter::LineConverter
を参照.
Public Methods
初期化: | new
|
変換: | tolocale, tolocale!
|
出力: | print, puts
|
設定: | locale, locale=, device, device=, input, input=, opt=
|
Included from PrintWrapper
出力: | print (-> stdout), stderr, puts (-> putsout), putserr, warn
|
Private Methods
変換: | kconv, filter
|
設定: | make_filter
|
Required Library
Licence
このスクリプトはフリーウェアです. 使用, 改変,
再配布は自己責任の範囲でお好きにどうぞ.
Acknowledge
- 塚原氏 (rename.rb の作者)
- 森川氏 (rename.rb のメンテナ)