質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

EUCの文字コードのファイル名のファイルを作る方法

解決済

回答 6

投稿

  • 評価
  • クリップ 0
  • VIEW 8,158

score 105

Linuxサーバ上に
EUC、SJISの文字コードで作られたファイル名のファイルを作りたいのですが、
出来るのでしょうか。

TeraTermで接続して、端末の設定で受信、送信の文字コードを変更して、

touch ほげほげ
と打つと
ファイル名が「????」と文字化けしてしまいます。

やりたいことは、EUCやSJISでの日本語のファイル名のファイルを作りたいのですが、
出来るのでしょうか。

Windows上でファイルを作ってもWinSCPやPuttyなどでファイル転送すると
ファイル名の文字コードが変わってしまうという話をきいたので、
Linuxサーバ上で作成したいです。




  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 6

+1

「EUCやSJISでの日本語のファイル名のファイルを作りたい」とのことですが、仮にそれがうまくいったところで、複数の文字コードのファイルが混在してしまうと後々いろいろと不幸になりそうです。ファイル名をどう扱うかは(Linux上の)各アプリ次第ですし、それらのファイル名をどう人間に見せるかは、端末側の設定もからんできます。

「EUCやSJISでの日本語のファイル名のファイルを作って」から最終的に何をやりたいのかを書かれると、より実践的な回答が得られるかもしれません。たとえば「古いファイルサーバ上にある既存の複数ファイルについて、一括でファイル名の文字コード変換をしたい」であれば、SMBCHARTOOLあたりでできそうです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

ファイル名の文字コードを変更する comvmv コマンドはどうでしょう。
コマンドの使い方はmanpageを参照してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

こんな感じで一時的にサーバの文字コードを変更してみてはどうでしょうか?

export LANG=ja_JP.SJIS
export LANG=ja_JP.eucJP
export LANG=ja_JP.UTF-8

Teratermでログイン後設定したい文字コードを設定して、Exitでログアウトすれば元の文字コードに戻りますので。。。

一時的な対応であれば、これで十分かと思いますが。。。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

ツッコミたいところがいくつかありますが、
おそらくTeraTermの文字コードの設定がされていないために化けているのだと
思います。
http://www.j-oosk.com/teraterm/configuration/563/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/02/05 07:41

    ということは、EUCの文字コードのファイル名を作りたい場合は、
    サーバ側を変えれば、作れるし、SJIS、UTF-8も作成が可能ということですね。
    TeraTerm側の設定をUTF-8にしたら、正しく表示されましたが、
    TeraTerm側の設定をEUCにしたら、正しく表示されません。
    その場合は、サーバ側の設定をEUCにすれば、
    EUCのファイル名が作成されるということですね。
    試してみます。ありがとうございます。

    EUCのファイル名のファイルをTeraTermで見て文字化けするのは、
    問題ないのですが、純粋にEUCのファイル名のファイルを作りたいのです。

    キャンセル

0

端末をUTF-8のままでEUCのファイルを作成したい場合はnkfなどで変換すると良いと思います。

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230849/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/02/05 12:38

    nkfでファイルの中身をEUCに変換できますが、ファイル名を変換するのはちょっと難しいのでは?

    キャンセル

  • 2015/02/05 12:40

    ファイルの中身だと思ってました…勘違いスミマセン。

    キャンセル

0

euc-jpは問題ないと思います。
Teratermをeuc-jpに設定して、
LC_ALL=ja_JP.euc-jp ls
で表示できるはず。

Shift_JISは、まず、
locale -a | grep ja
で、Shift_JISのロケールがあるかどうか確認。あれば、上記と同様。

無い場合は、ロケールの追加が必要です。/usr/share/i18n/charmaps/SHIFT_JIS.gzというファイル(OSによってファイル名が違うかも)があることを確認して、rootで、
localedef -f SHIFT_JIS -i ja_JP /usr/lib/locale/ja_JP.sjis
最後のファイル名は出力ファイルで、ファイル名がロケール名になるようです。
ロケールが追加できたことを確認して、TeratermをShift_JISに設定し、
LC_ALL=ja_JP.sjis ls
で表示できるはず。

複数の漢字コードを使い分けるなら、Teratermインストールの時に、TTXKcodeChangeもチェックを入れてインストールしておくと、サーバー側からエスケープシーケンスを送ることでTeraterm側の漢字設定を変更することが出来るので、便利かも知れません。
#!/bin/sh
# sjisモードに切り替えて ls
echo -en "\e]5963;kr=sjis;kt=sjis\a"
LC_ALL=ja_JP.sjis /bin/ls "$@"
sleep 1 #ちょっと待たないと駄目みたい
echo -en "\e]5963;kr=utf8m;kt=utf8\a"
参考:TTXKcodeChange/ReadMe-ja.txt

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る