[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:41341] LANG=ja_JP.UTF-8 のときのマニュアル中のハイフン



さとうふみやす です。こんにちは。

私はこのごろ Debian sid にて環境変数 LANG を ja_JP.UTF-8 で
利用しています。発覚している問題としては、

  1. sawfish の描くウィンドウタイトルの日本語が文字化ける。
  2. man や perldoc でマニュアルを表示したとき、
    ハイフンが 2種類現われる。
    
があります。sawfish の問題はともかく、man の問題は、
マニュアル中の例などをコピー&ペーストする場合に
非常に欝陶しいです。一方のハイフン (マイナス記号) は
ASCII の '-' で、こちらは問題じゃありません。

$ unicode -
U+002D HYPHEN-MINUS 
UTF-8: 2d   UTF-16BE: 002d   Decimal: -
-
Category: Pd (Punctuation, Dash)
Bidi: ET (European Number Terminator)

もう一方のハイフンが問題で、コマンドオプションや
Perl の矢印演算子(?)のハイフンがこれになると、コピー
した後に ASCII のハイフンに書き換えなければなりません。

$ unicode ‐
U+2010 HYPHEN 
UTF-8: e2 80 90   UTF-16BE: 2010   Decimal: ‐
‐
Category: Pd (Punctuation, Dash)
Bidi: ON (Other Neutrals)

同じようにシングルクォートも 2種類あり、コードの例に
後者がまぎれこんでいることがあります。

$ unicode "'"
U+0027 APOSTROPHE 
UTF-8: 27   UTF-16BE: 0027   Decimal: '
'
Category: Po (Punctuation, Other)
Bidi: ON (Other Neutrals)

$ unicode ’
U+2019 RIGHT SINGLE QUOTATION MARK 
UTF-8: e2 80 99   UTF-16BE: 2019   Decimal: ’
’
Category: Pf (Punctuation, Final quote)
Bidi: ON (Other Neutrals)

なお、LANG=ja_JP.eucJP の時は問題なく、どちらも ASCII の
文字となります。

この動作は、仕様なんでしょうか?

とりあえずは、こんな↓シェル関数で回避しようかと
思ってます。(man の「…を再フォーマットしています」という
表示が化けるが、それは無視 :-)

man()
{
    exec \
    env LC_ALL=ja_JP.eucJP \
    man "$@" \
    |nkf -Ew \
    |"$PAGER"
}

-- 
-- Name: SATOH Fumiyasu  -- Home: http://www.sfo.jp (in Japanese only)
-- Mail: fumiya at net-thrust.com, samba.gr.jp, namazu.org or ...