質問: Ubuntu command lineでpdfファイルネームが$\xxx\xxx\xxx.pdfような形にになってしまった。日本語のファイルネームが正しく表示できません。
回答: 異常として起きる場合と、正常に起きる場合があります。 典型的な正常に起きる表示の乱れは Windowsと、Linux系OSやmacOSなどを併用することで起きます。 もともと日本語をコンピューターで利用するためには 当初半角カタカナなどを使うANKが考案されましたが 実用的な日本語処理のために、シフトJISやEUC-JPといった文字コードが 1980年代に開発され、各社で整備が進みました。 しかし、その結果各社の独自拡張がさまざま行われ、同じシフトJISでありながら たとえば、トランプマークが使えるMacではハートマークに見える文字が 主流となっていたPC-9801のMS-DOS環境では違う記号に見えました。 当時はPCのハードウェアベンダーを問わないOSが無く 機種が違えば生じる問題であり、機種依存文字と呼ばれました。 もっとも、OSが違えば同じ機種でも違いが出たりはするので 2000年前後、環境依存文字と呼ぶべきだと主張していたら いつのまにか、そう呼ばれることも多くなっています。 ですから1980年代のうちに、単一の文字コードで世界中の文字を利用できるようにと のちのUnicodeのための活動は始まっていたんですが 実際的にそれが普及するのはインターネットの時代になってからで おかげさまで、パソコン通信の時代で紛糾することもあった文字コードの問題を インターネット上で体験させられる機会は非常に少なくなりました。 すでに、macOSやLinux系OSではUnicodeが標準の文字コードとして採用されていて Apple流のシフトJISはiPhoneで使われたりしませんでしたし Unix由来のEUC-JPも、現在ではLinux系OSで使われることは非常に稀です。 ハートマークもUnicodeの文字として、MacでもLinux系OSでもWindowsでも 共通してウェブ上で正しく利用することができます。 ただし、WindowsだけはUnicodeを標準としていません。 Windowsは最大のシェアを持っていますから、無理を通しても通ってしまいますが 結果的に問題は、Windowsユーザーが自覚することは少なく macOSやLinux系OSを使っている人が被害を被るほうが多くなります。 典型的なケースは、シフトJISで書き込まれたファイル名が 適切に表示されないという現象です。 特に、Windowsは文字コード情報を保持する仕様を持たないZIP形式を 実質的な標準のアーカイブ形式として採用しています。 ですから、Windowsで作られた日本語ファイル名を含むZIPファイルは macOSやLinux系OS上で展開すると ファイル名が文字コードミスマッチで正しく保存されない場合があります。 識別できる実装もありますが、すべてが識別できるわけでは無いことが問題で 逆に、Unicodeで記録されたZIPファイルやRARファイルをWindowsで扱う場合も シフトJISとして解釈して展開し、正常に表示されない現象が起きる場合があります。 インターネット普及率が低いうちにUnicodeへの一本化が進んでいれば そういった問題は、かなり頻度の低いものになっていたはずですし 文字コード情報を保持する7z形式が主流になれば、やはり緩和されました。 しかし、最大シェアのWindowsがシフトJIS標準とZIP標準を続けた結果 すでにインターネット上には大量のシフトJISのZIPファイルが蔓延しています。 PDFファイルも、アーカイブとしてLinux環境に持ち込んだものであれば 文字コードミスマッチが展開時に起きている可能性が高いでしょう。 HDDにWindowsで保存していたファイルが問題であれば ほかの日本語ファイルにも起きているはずで その場合は、HDDのパーティション無いのファイルシステムを マウントする際に、適切に文字コード設定を行わなかったためです。 こういった問題は自動認識で回避される場合もありえますが たとえば、Linux系OSでWindows環境のデータをサルベージするような場合にも 文字コード設定を怠ったことによって 適切にファイル名を扱えない場合があります。