パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

bashがマルチバイト文字に正式対応」記事へのコメント

  • by Anonymous Coward

    > 使用エンコーディングはLC_CTYPE ロケールによって決定されるので

    はい、先生、質問がありまーす。

    • bashのLC_CTYPEは動的に変更可能ですか? 例えば、

      LC_CTYPE=ja_JP.SJIS
      cat /smbfs/w32host/シフトジスなファイル名
      LC_CTYPE=ja_JP.EUC
      cat /export/samba/日本語EUCなファイル名
      LC_CTYPE=zh_TW.Big5
      cat /home/guest/たまに繁体中国語ファイル名

      とか状況に応じて次々と切り替えても大丈夫ですか?

    • bash自身の実行と、起動するアプリケーションのLC_CTYPEを別々に設定できますか? 例えば、

      $ hogeedit ファイル名はEUCだけど中身はSJISなファイル

    • 先生じゃないけど、お答えします。

      LC_CTYPE=ja_JP.SJIS
      cat /smbfs/w32host/シフトジスなファイル名
      LC_CTYPE=ja_JP.EUC
      cat /export/samba/日本語EUCなファイル名
      LC_CTYPE=zh_TW.Big5
      cat /home/guest/たまに繁体中国語ファイル名

      できるようです。もちろん、入力方法を別途用意しないといけないし、ターミナルの表示コードも別途切り替えないといけないですよ。

      $ hogeedit ファイル名はEUCだけど中身はSJISなファイル

      そんな極悪なことをやらないほうがいい、という忠告はさておき、やりたい場合は、

      • by Anonymous Coward
        根本から覆すような話で申し訳ないですが...

        >> もちろん、入力方法を別途用意しないといけないし、ターミナルの表示コードも別途切り替えないといけないですよ。

        nkfとか使って逃げるというのは邪道でしょうか?

        >> $ LC_CTYPE=ja_JP.SJIS hogeedit ファイル名はEUCだけど中身はSJISなファイル
        • 先日、毎日どのくらい ~/memo/diary.txt に書き込みをしているか調べるために、pdumpfs で取ってあるファイルサイズを調べたら、ある日突然 11MByte ほどはねあがっていました。

          いくらなんでも、そんなにタイプしているはずがないので調べたら
          euc-jp だったはずのファイルがいつのまにか
            Non-ISO extended-ASCII English text
          とやらゆうものになっていました。

          emacs で開いて読み書きをしている間は全然気になっていませんでしたが、cat で古いファイルを見ようとしたら読めなかった。

          コードを強制的に euc-jp に設定しなおしました。
          これで、エラーにならなかったので euc-jp であらわせない文字がまぎれこんでいた、というわけでもなさそう。

          というわけで、自動に頼っていると便利だけど落し穴もあるよと
          --
          信ずる者は掬われる。
          親コメント

計算機科学者とは、壊れていないものを修理する人々のことである

処理中...