
日本語は使っちゃダメ!?ファイル名の正しいつけ方
Tweet
ファイル名が文字化け!?
メールやDropboxで共有したファイルをダウンロードしたら,ファイル名が「繝」とか使われた意味不明な文字に文字化けしてる!なんてことが…
どうやったらファイル名の文字化けを防げるんでしょう…
今回のテーマは「文字化けしないファイル名の付け方」です.
1. 文字化けはなぜ起こる?
正しいファイル名の付け方の前に,そもそもなぜ文字化けが起こるのかについて考えてみたいと思います.
原因は文字コード
文字化けは
文字を書いた「文字コード(encode)」と
文字を読むときの「文字コード」が間違っているときに発生します.
たとえるなら,
「すべて英語で書かれた文章を,日本語がローマ字で書かれていると思って読む」みたいな感じです.
もちろん英語で書かれた文章をローマ字で読んでも意味のある日本語にはなりませんよね?
文字コードって?
※内容が少し高度です.時間がない方は無理に理解はせず流してくれれば構いません(*^_^*)
皆さんも何かで聞いたことがあるかもしれませんが,
コンピュータはすべての処理を「0」と「1」の二つの文字(状態)で表しています.
もちろん文字も同じで,
たとえば,アルファベットの”A”はコンピュータの中で”01000001″と表されていたりするわけです.
このように文字を8個の0または1で表現すると,
1桁について2通りの数字が考えられますから
それが8桁で2×2×2×2×2×2×2×2 = 256通り…
とはいかないわけなんですが,
仮にそうだとしても,世界中のすべての文字と記号を256通りの数字で対応できるわけはありません.
そこで考えたわけです.
- アルファベットと数字(アラビア数字)
- いくつかの記号
- コンピュータの制御に必要な操作の割り当て(BackSpaceやEnterなど)
この三つは必ずいれておいて,他の文字はオプションにしよう,と……
(だいぶ語弊がありますが細かいことは気にしないでください)
ということで文字コードという概念ができました.
先ほどの三つを基本文字とすると,文字コードは基本文字とその他の文字の組み合わせでできています.
たとえば
Aという文字コード=基本文字+ひらがな+カタカナ+漢字
Bという文字コード=基本文字+アラビア文字
Cという文字コード=基本文字+キリル文字
というような感じです.
そのようなわけで,文字を扱う時は常にこの文字コードを切り替えることで
正しく文字を表示したり書いたりしているわけです!
ここで大事なのは
基本文字はどの文字コードでも同じ数字で表されることです.
たとえばAは基本文字なのでどの文字コードでも01000001が数字として対応しています.
しかし,
たとえばShift-Jisという文字コードで”ア”は10110001ですが,
他の文字コードでは同じ10110001なのに別の文字を指していたりするわけです.
つまり,基本文字以外の文字は,文字コードが違うと正しく表示されません.
これが文字化けの原因です!!
ファイル名の文字コード
Webサイトを私たちが閲覧しているときはほとんど文字化けが起こりません.
というのも,Webページに「このページの文字コードはUTF-8です!」というような情報が書かれていたり,
それがなくともWebページを見ているソフト(ブラウザ)が自動的に「このページはこの文字コードで書かれている」と判断してくれているからです.
また,もしも間違っていればブラウザの設定で表示している文字コードを変更することができるので
文字化けしても戻すことができるのです.
しかし…ファイル名は違います!
通常ファイル名の文字コードはユーザーの我々が任意に変更することができません.
しかも,そのファイル名の文字コードは日本語の場合
WindowsならShift-JIS,MacではUTF-8(-Mac)が標準というように
OSによって違うのです…!
ということはWindowsで作ったファイルをMacの人に渡すと文字化けしてしまうことになりかねません!
最近のOSはその対応も進んではいるのですが,
インターネットを通すときはその文字化け問題が再び発生してしまうのです…
Windowsのパソコンであるファイルに名前をつけて,
Dropboxにアップロードしたりメールで添付ファイルにして転送したとします.
それを別のWindowsのパソコンにダウンロードしたとします.
「WindowsとWindowsだから日本語の名前を付けていてもいいんじゃないの?」
と思うかもしれませんが,それがそうもいかないんです…
というのも,
一度Dropboxやメールの転送でサーバーを通るときに
文字コードが変更されてしまう可能性があるのです.
2. 正しいファイル名の付け方
ここまでは,そもそも文字化けがなぜ起こるのかを議論してきましたね!
文字化けは文字コードの違いによって起こってしまうわけです.
「それはわかったけど,じゃあ結局どんな名前付ければいいのさ!!」
と思う方もたくさんいらっしゃると思うので,実際の名前の付け方を見ていきましょう!
どの文字コードでも共通の文字を使う
先ほどの文字コードのところでお話しましたが,
どの文字コードにも含まれている文字というのが三種類あります.
それは
- 大小半角アルファベット52字,アラビア数字10字
- !?”#$%&'(-=^などの基本的な記号
- コンピュータを制御するための制御記号(BackSpaceやEnterなど)
です.
ということで半角英数と記号のみでファイル名は書けばいいということになりますね!
しかし!記号をなんでも使っていいわけではなくて…
使っていい記号はアンダーバー!
どの文字コードにも含まれている文字の中に記号があるという話をしましたが,
だからといってその記号をすべて使っていいかと言われるとそうでもないのです…
コンピュータの中の「位置」を示す区切り文字として使われたり,他の意味を表す文字があったり…
特にピリオドやスラッシュ,バックスラッシュは絶対に使わないことをおすすめします.
?や*はワイルドカードという機能に使われるので使えません.
また,空白文字(いわゆるスペース)もファイルの位置などを表す時に面倒なので使わないほうがよいと思います.
などなど,色々考えてみますと
最も安全な記号は「_(アンダーバー)」です!
記号を使いたい場合はアンダーバーを使いましょう.
まとめ
ということで,ここまで見てきたものをまとめるとファイル名には
半角英数字と半角アンダーバー”_”のみ
を使うと思ってください!
基本的には半角英数のみを使っておいて,区切りやスペースを入れたくなったらアンダーバーを使うというのが現実的ではないかと思います.
3. 化けたファイルはどうする?
ここまでは文字化けしないファイル名の付け方を見てきましたが,もしも他の人から文字化けしたファイルが送られてきたらどうするか考えてみます.
zipファイルの場合
Dropboxなどからフォルダまたは複数ファイルをダウンロードするときはzip形式に圧縮されてダウンロードされます.
このとき,日本語のファイル名が存在していると,ことごとく文字化けします……
しかし!!
zipファイルを解凍するときにファイル名を自動判定して解凍してくれる解凍ソフトもあるんです!素晴らしいですね!
色々試してみたところ,Explzhというソフトは使えたのでご紹介しておきます.
もしDropboxをよく使ったり,色んな人とファイルをDropboxで共有する人は使ってみてもよいと思います.
zipファイル以外の場合
- オンライン上にあるファイルの名前を,使える文字のみに変更してからダウンロードする
無理なら送信者や,ファイルの送信者に連絡して変更してもらいましょう. - 送られてきたファイルが文字化けしていたら,[名前の変更]等で名前をコピペして文字コードをShift-JISからUTF-8に変換してみる
文字コードを変換できるエディタと持っていればそれを,なければ「もじばけらった」のようなサイトを使い,ファイル名をコピペして文字コードの変更をしてみます.成功すれば,全部とはいかずとも一部の文字は読めるようになります.
とはいえ,基本的には絶望的だったりしますので
半角英数とアンダーバー以外でファイル名を書いて送ってくる人がいたら「ダメだよ」って教えてあげてくださいね!

ローマ字を使えばいいだけではないのか。
コメントありがとうございます.
もちろんそのまま半角英字だけで使っていただいても問題はないです!
ただ,英字であっても全角英字は問題になってくるので,
もし全角もお使いでしたら今後は半角文字に統一するほうがよいかもしれません.