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

[debian-users:58087] Re: ターミナルに日本語含むファイルパス貼り付けで文字化け



こんにちは、松井です。

まず、Takeutiさんのコメントについてですが、
http://lists.debian.or.jp/debian-users/201608/msg00006.html
http://lists.debian.or.jp/debian-users/201608/msg00007.html
は読んでいただけましたでしょうか。
(最初のTakahashiさんのメールはアーカイブ上ではなぜか文字化けしていますけど)
Takeutiさんのやり方を私の方でも試してみたのですが
結局 ctrl + c などを押さないとコピーできないようです・・・
「名前の変更」からの操作だと、コピーできてもファイルのフルパスでなくファイル名だけになるようですし。
Takeutiさんの環境ではそういう設定をされているからポインターでなぞるだけで自動的にコピーされてしまう、ということでしょうか。
Takahashiさんのアドバイスにありましたように、
Nautilus からファイルをドラッグ&ドロップして
'/home/debmania/Desktop/文.pdf'
と表示されるのを ' の部分を取り除いて修正するのが一番簡単なようです。

次に、喜瀬さんのコメントについてですが、
# LANG="ja_JP.SJIS"
# SUPPORTED="ja_JP.SJIS:ja_JP:ja"
というのは手元のメモにあった内容をにターミナルにコピペして実行したものだったのですが、
ネットで検索してみますと、これは RHEL系統の OS での話だったようで、ターミナルでコマンドとして一行づつ実行するのではなく
/etc/sysconfig/i18n に
LANG="ja_JP.SJIS"
SUPPORTED="ja_JP.SJIS:ja_JP:ja"
と書き込んで設定を行うということだったようです。
いい加減なメモを信用して行ったことでお騒がせしましたようで、すみません。
debian にはそもそも etc/sysconfig は存在せず、/etc/default がそれに相当するとどこかに書いてありましたが

$ cat /etc/default/locale
#  File generated by update-locale
LANG=ja_JP.UTF-8
LANGUAGE=ja_JP:ja

となっていますので、ここを直接編集して設定するなんてこともできるのかな?
と思ったのでちょっとやってみました。
/etc/default/locale の LANG の行だけ
LANG=ja_JP.SJIS
と手で書きかえて
$ source /etc/default/locale
とやってから、ログオフ→再ログインした後の状態が

$ echo $LANG
ja_JP.SJIS
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=ja_JP.SJIS
LANGUAGE=ja_JP:ja
LC_CTYPE="ja_JP.SJIS"
LC_NUMERIC="ja_JP.SJIS"
LC_TIME="ja_JP.SJIS"
LC_COLLATE="ja_JP.SJIS"
LC_MONETARY="ja_JP.SJIS"
LC_MESSAGES="ja_JP.SJIS"
LC_PAPER="ja_JP.SJIS"
LC_NAME="ja_JP.SJIS"
LC_ADDRESS="ja_JP.SJIS"
LC_TELEPHONE="ja_JP.SJIS"
LC_MEASUREMENT="ja_JP.SJIS"
LC_IDENTIFICATION="ja_JP.SJIS"
LC_ALL=

$ locale の結果の最初の三行がおかしな内容が出ていますね。やっぱりこの方法はやらない方がよさそうです。

wheezy まではインストール時に日本語を選択すると初回の再起動後に文字化けしていましたので、
wheezy での言語設定に使っていた手製の一発日本語化スクリプトを見てみますと、
ロケールを設定・変更するためには、正しくは
$ sudo update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja
のようですね。

上の ja_JP.SJIS の操作をやった後では
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = "ja_JP:ja",
	LC_ALL = (unset),
	LANG = "ja_JP.SJIS"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
というような普段は出ないメッセージが出てしまいましたが、少なくとも直後の
$ source /etc/default/locale
の後には直っていました。

---
Kenji Matsui


On 2016年08月08日 23:25, Masa Takeuti wrote:
ctrl+cなど使わずに
マウス操作で貼り付ければ
問題なくコピーできると思うのですが
それではいけないのですか?

一応、手順を書いておけば
nautilus上で
右クリック
renameを選択し
コピーしたい部分を
ポインターで一回なぞって
次に
ターミナル上で
中央クリックすれば
正常にコピーされるはずです

On Wed, 3 Aug 2016 22:56:32 +0900
Kenji Matsui <kmatsui@xxxxxxxxxxxxxxxxxx> wrote:

こんばんは、松井です。

nautilus や caja などのファイルマネージにおいて対象のファイルを選択し、ctrl + c を押した後に
ターミナルに ctrl + shift + v で貼り付けると
ファイルパスに英数字のみを含むものはそのファイルパスを
file:///home/debmania/Desktop/manual1.pdf
というように正常に貼り付けられますが、
ファイルパスに日本語を含むものは
file:///home/debmania/Desktop/%E6%96%87.pdf
というように文字化けしてしまいます。

日本語を含むものも文字化けせずに貼り付けることができれば便利なのになと以前から思っていたのですが、
文字化けしないようにする設定方法はありますでしょうか?
(文字化けしなくても先頭部分の「file://」を削らないといけないのに変わりはないのですが、これは最初にここを削ってからコマンドを打てばいいです。)

いちおう、文字コードを
# LANG="ja_JP.eucJP"
# SUPPORTED="ja_JP.eucJP:ja_JP:ja"
や
# LANG="ja_JP.SJIS"
# SUPPORTED="ja_JP.SJIS:ja_JP:ja"
で変えてログオフ→再ログインを試してみても何の効果もありませんでした。
utf-8 が悪さをすることは考えにくいので、あたりまえかもしれないですけど。

そういえば、安定版の jessie を使うようになってから、
インストール時に日本語を選択した場合の再起動後の文字化けや、
shiftJIS のファイルを gedit で開いた時の文字化けも
何の設定もしなくても起こらないようになっていますね。
メンテナの方達が修正して下さったのでしょうか。
心から感謝いたします。

今回のファイルパスの文字化けに関しましても
現時点で特に解決手段がない場合は
将来の安定版で修正していただけると
とてもありがたいです。

では、まずは文字化けを防ぐ設定方法について
ご存じのことやお気づきのことなどありましたら
どうぞよろしくお願いいたします。

---
Kenji Matsui




On 2016年08月09日 00:22, KISE Hiroshi wrote:
完全に見落としていました。本題ではありません。

From: Kenji Matsui <kmatsui@xxxxxxxxxxxxxxxxxx>
Subject: [debian-users:58078] ターミナルに日本語含むファイルパス貼り付けで文字化け
Date: Wed, 3 Aug 2016 22:56:32 +0900
いちおう、文字コードを
# LANG="ja_JP.eucJP"
# SUPPORTED="ja_JP.eucJP:ja_JP:ja"
や
# LANG="ja_JP.SJIS"
# SUPPORTED="ja_JP.SJIS:ja_JP:ja"
で変えてログオフ→再ログインを試してみても何の効果もありませんでした。

root権限のコマンドプロンプトで環境変数を変更した、
という意味でしたら上記の操作はまったく意味がありません。
コマンドを実行したシェルが終了した時点で消えてしまいます。

何かの設定ファイルを変更したのであれば、それを明記してください。

ちなみに、環境変数SUPPORTEDというのはどこから出てきたもの
なのでしょうか?