Apple macOSの文字コード「UTF-8-Mac (NFD)」に起因する濁音・半濁音の2文字扱い問題に関連し、MacからWindowsへのファイル受け渡しについて、さらに理解を深めておくため、いろいろ試してみた記録です。
Mac → Googleドライブ → Windows:Windowsでダウンロード時に1文字扱いに変換されている
MacOSでChromeブラウザ上のGoogleドライブに濁音・半濁音を含むファイルをアップロード。既報の通り、ブラウザにSafariを使うか、パソコン版Googleドライブでアップロードした場合はその時点で1文字扱いに変換されますが、Chrome経由のため、変換されません。アップロード後、ChromeのGoogleドライブ上でファイル名を確認すると2文字扱いのままアップロードされています。
その後、WindowsのPCでChromeブラウザを使い、Googleドライブにあるそのファイルをダウンロードします。
すると、ダウンロード後、Windows Explorer(ウィンドウズ エクスプローラ)上にあるファイルを調べると自動的に1文字扱いに変換されていました。
Mac → USBメモリ → Windows:Windowsにコピーすると1文字扱いに変換されている
MacOSで濁音・半濁音を含むファイルをUSBメモリにコピー。今回使ったUSBメモリは一般的な「MS-DOS(FAT32)」フォーマットのものです。
まずコピー後のUSBメモリ内にあるファイルのファイル名をmacOSにあるうちに確認すると、まだ2文字扱いのままです。
次にそのファイルをWindowsの内蔵ストレージ領域(NTFSフォーマット)にコピーします。すると、コピー後のWindows Explorer上のファイルは、自動的に1文字扱いに変換されていました。
同じUSBメモリ内のファイルでもMacに挿ししているか、Windowsに挿しているかで異なる
Windowsに挿した状態でUSBメモリ内のファイル名をGoogleドキュメント等へコピペしてみたところ、1文字扱いでした。
前述の通り、同じUSBの同じファイルについて、Macに挿している状態の場合、2文字扱いです。
つまり、USBメモリの場合、どちらのOSで扱っているかで自動的に変換されるようです。
Windowsは2文字扱いのファイル名を扱えないわけではなかった
となると、そもそもWindowsのストレージ、つまりはExplorer上では2文字扱いのファイル名は扱えないのではないか、と考え、試してみました。
Googleドキュメント上にMacで2文字扱いのテキストを用意し、続いてWindowsでそれをコピー、そしてWindows Explorer上にあるファイルにペーストしました。
すると、それは2文字扱いのまま。1文字扱いに自動的に変換されるわけではありません。
つまりWindowsが2文字扱いのファイル名を扱えないわけではないことが分かりました。
MacでWinArchiver Liteで圧縮 → Googleドライブ → Windowsでダウンロードし解凍:1文字扱いに変換されている
Macで「WinArchiver Lite」アプリを使い、濁音・半濁音を含むファイルをフォルダにまとめた上で圧縮。 Liteなので設定可能な項目は限定的ですが、[Windowsの言語バージョン]は「日本語版 Windows」に設定した状態での圧縮です。
そのZIPファイルをChromeブラウザを使ってGoogleドライブにアップロード。次にWindowsへ移り、WindowsのChromeでGoogleドライブからダウンロードし解凍してみます。
すると、フォルダ内のファイル名は1文字扱いに変換されていました。
ちなみに、久々にmacOS標準のZIP圧縮で圧縮したファイルを同様にGoogleドライブ経由でWindowsへ移動してみましたが、Windowsで解凍するとファイル名は思い切り文字化けしていました。未だにダメですね。
ただ、圧縮前のMacの段階で、ファイル名を半角英数字に限定(全角の漢字、ひらがな、カタカナは使わない)すれば、macOS標準のZIP圧縮でも文字化けは起きません。但し「.DS_Store」というmacOS特有の不要なファイルが含まれたりしますので、やはり「WinArchiver Lite」のような専用アプリを使って圧縮した方がいいですね。
実際に実験しようとすると手間ですので、少しでもご参考になると幸いです。自分でも、あれ、どうだったっけなと思った時に見返したいと思います…😊
[関連投稿]