Macで作った資料をWindowsに送ったら文字化けだらけになり、直したいのに何から手を付ければいいか迷っていませんか?
ここではエンジニアの現場で培った実体験を基に、メール本文が記号に化ける例、ZIP展開でファイル名が???になる例、Gitログが読めなくなる例まで、場面ごとに安全な文字コード変換の手順と頼れるツールを丁寧に示し、試行錯誤の時間を丸ごと削減できます。
肩の力を抜きつつページを開きながら、今抱えているトラブルに一番近い章から手を動かしてみてください。作業が終わる頃にはMacとWindowsの往復作業を安心してこなせる自信が自然と湧き、共有作業にも余裕が生まれます。
MacとWindowsの文字化けをスルッと直すやさしいステップ

同じテキストをMacで書いてWindowsで開くと文字化けが起きやすい…そんな経験はありませんか?文字コードが合っていないと「あれ?なんで読めないの…」と手が止まります。でも安心してください。いくつかのコツでサクッと直せます。
- UTF-8に統一:まずはファイル自体をUTF-8で保存しておくとトラブル激減
- エディタ設定を見直し:VSCodeなどでデフォルト文字コードをUTF-8に固定
- iconv/nkfで変換:ターミナルから手軽にエンコーディングを切り替え
- BOM付きなし調整:Windows用にBOMを付けたり外したり試してみる
- .gitattributes活用:Gitコミット時に自動変換を仕込んでおく
この5つを押さえれば文字化けの大半がスルッと解消します。次からは具体的な手順でひとつずつ進めていきましょう。
メール本文が読めないとき

文字化けしたメール本文はメールクライアントの文字コード切り替えで読みやすくなります。Macのメール.appやWindowsのOutlook、Thunderbirdには表示メニューから手動で文字コードを指定できる便利な機能があります。
この方法は追加のソフトを入れず済むので、本文だけ直したいときにぴったりです。プログラマーならではのコツとしては、送信元の環境を想像しながら文字コードを順番に試すと、どれが合うかすぐわかります。
- UTF-8:国際的に最も標準的な文字コード
- ISO-2022-JP:古いメールシステムで使われやすい日本語用
- Shift_JIS:Windows環境で送られてくることが多い
①受信したメールを選択してエンコーディングを確認する
メールアプリを開いて、文字化けが気になる受信メールをクリックで選択してください。
メニューバーからMail:表示→テキストエンコーディングまたはOutlook:メッセージ→その他の操作→エンコーディングを開いて、現在の文字コードを確認します。
②表示メニューからメッセージエンコーディングを変更する
まず文字化けしているメールを選択して、内容が表示されるようにします。
画面上部のメニューバーから表示
をクリックします。
メッセージエンコーディング
にカーソルを合わせると、サブメニューが出てきます。
日本語メールなら日本語(ISO 2022-JP)、UTF-8で送られている場合はUnicode(UTF-8)を選びます。
選んだらウィンドウが自動で再レンダリングされ、文字化けがスルッと直っています。
③自動に戻して再読み込みで文字化けが解消されることを確認する
ブラウザの文字コード設定を「自動検出」に戻します。Safariならメニューバーの表示→テキストエンコーディング→自動検出を選んでください。
そのあと⌘+Rキーでページを再読み込みします。文字化けが消えていれば完了です。
ファイル名が???になるとき

MacからWindowsへファイルを渡したとき、ファイル名が「???」になって中身を探せなくなることがある。この原因はMacが標準で使うUTF-8とWindowsのCP932(Shift_JIS系)の食い違いだ。
ここで紹介するのはHomebrewで導入できる「convmv」を使った方法だ。無料でサクッと試せて、一度に多数のファイル名をまとめてWindows対応の文字コードに変えられる。大量の写真やドキュメントをやり取りするときに特に頼りになる手軽さが魅力だ。
①ターミナルを開いてls-lで文字化けしているかを確認する
まずはターミナルを使ってファイル名に文字化けが起きているかどうかを調べます。焦らずにひとつずつ進めてください。
LaunchpadやSpotlightで「ターミナル」と入力して開いてください。プログラマー視点だと⌘+スペースでサクッと呼び出せます。
ls -l
と入力してEnterを押してください。長めのリスト表示でファイル名が並びます。
ファイル名が日本語の場合は正しく読めるか、もし「??」「����」といった文字が並んでいたら文字化けしています。
②Homebrewでconvmvをインストールする
まずターミナルを開いてください。Spotlight(⌘+スペース)で「ターミナル」と入力すると早いです。
パッケージ情報を最新にするために以下のコマンドを実行します。
brew update
つづいて、convmvをインストールします。Homebrewならシンプルに以下ひとつです。
brew install convmv
インストールが終わったら、バージョンを確認してみましょう。
convmv --version
バージョン番号が表示されれば準備完了です。
③convmvコマンドでUTF-8へ一括変換する
まだ導入していなければターミナルでbrew install convmv
と入力して追加します。
文字化けしているファイルが入ったフォルダにcd /path/to/フォルダ
で移動します。
convmv -f SHIFT_JIS -t UTF-8 -r .
を実行して、変更内容をチェックします。(まだファイルは変わりません)
結果に問題なければconvmv -f SHIFT_JIS -t UTF-8 -r --notest .
を実行して実際に変換します。
Finderやlsコマンドでファイル名が正しく表示されているか確認してください。
convmvはファイル名のみを変換します。ファイル中身の文字コードには影響しないので注意してください。
④Finderでファイル名が正常に読めるかチェックする
DockかSpotlightからFinderを起動して、文字化け対応したファイルが入っているフォルダを開きます。
表示モードを「リスト」に切り替えると長いファイル名も確認しやすくなります。
日本語や記号が正しく表示されていれば成功です。崩れている場合は、手順③で使った変換オプションを見直してみましょう。
テキストが豆腐だらけのとき

文字が豆腐だらけになるのは、フォントにその文字が入っていないからです。パソコンが読もうとしても表示用の字形がないと黒い四角だけが並んでしまいます。
この場合は必要なフォントを追加するのがいちばん気軽な方法になります。Macなら「Font Book」で日本語や絵文字フォントをインストールし、Windowsでも同じフォントを入れておけばお互いの文字化けを防げます。
フォントをそろえておくと文字化けの心配がなくなるうえに、いざというときの表示崩れもぐっと減ります。最初にフォント周りをチェックするのは、とてもおすすめの対策です。
①テキストエディタでファイルをUTF-8として開き直す
VSCodeで文字化けしているファイルを開いたら、画面右下に表示されている文字コード部分をクリックしてください。
表示されたメニューから「Reopen with Encoding」を選んで、UTF-8をクリックすると文字がきれいに直ります。
Notepad++でファイルを開いた状態でメニューの「エンコーディング」を開き、「文字コードを指定して開く」→UTF-8を選んでください。
②ターミナルでnkf-wを実行してエンコーディングを変換する
LaunchpadやSpotlightからターミナルを探して起動します。作業するフォルダに移動することを忘れないでください。
以下のように入力してファイルの文字コードをUTF-8に変えます。
nkf -w original.txt > converted.txt
この例ではoriginal.txtを読み込んで、UTF-8に変えた結果をconverted.txtに出力しています。
元ファイルを直接上書きしたいときは、-wオプションだけでOKですが、念のためバックアップをとってから実行してください。
③Windowsでも開いて文字化けがないか確かめる
エンコードをUTF-8に変換したファイルをWindows環境へ移動します。
VSCodeを起動してファイルを開き、画面右下に「UTF-8」が表示されているか確認します。
日本語部分をスクロールしながら見て、文字化けがないか丁寧にチェックします。
もし文字化けを見つけたら、Macで再度UTF-8(BOMなし)保存を行い、同じ手順で確認し直しましょう。
直し方を覚えたら!MacとWindowsどちらでも安心共有できる資料づくり

覚えた文字化けの直し方を活かしておけば、MacでもWindowsでもストレスなく開ける資料づくりができます。ここでは、実際に役立った応用テクニックをまとめました。
応用テクニック | 使いどころとメリット |
---|---|
PDFで書き出し | 文字コードやフォントの埋め込みが自動処理され、どちらの環境でもレイアウト崩れなしで表示できる。 |
共通フォントを活用 | Windows標準の游ゴシックやMac標準のヒラギノを避け、両方に入っているメイリオやArialに統一すると安心。 |
シンプルなレイアウト | 表や図の罫線を細かく入り組ませずにまとめ、セル結合も最小限にすると、読み込み速度と再現性が上がる。 |
クラウド共同編集 | GoogleドキュメントやMicrosoft 365を使うと、リアルタイムで文書を最新状態に保ちつつ共有できる。 |
これらの方法を組み合わせることで、文字化けの不安を解消しつつ、誰でも快適に開ける資料が完成します。
Numbersで作ったCSVを文字化けさせずに渡す

NumbersからCSVを書き出すときはエンコードにUTF-8(BOM付き)を選ぶとWindows側での文字化けをぐっと減らせます。BOMがファイルの先頭で文字コードを教えてくれるからExcelで開くときに安心です。
- BOMで文字コードを自動認識してくれるため文字化けしにくい
- Numbersの書き出し設定から選ぶだけで簡単に用意できる
- プログラマー目線でも手軽なのでチーム内共有にぴったり
NumbersでUTF-8として書き出す
書き出したいシートを開いてメニューバーから「ファイル」「書き出す」「CSV…」を選んでください。
区切り文字はカンマのまま進めると、Mac標準のUTF-8形式で保存されます。
書き出したCSVをTextEditで開き、メニューの「ファイル」「別名で保存」をクリックしてください。
フォーマットは「プレーンテキスト」、文字エンコーディングは「Unicode(UTF-8)」を選んで保存すると確実です。
ターミナルでnkf-wLuをかけて改行コードも整える
ターミナルを開いてnkfへオプション -wLu
を指定すると、文字コードをUTF-8へ揃えつつ改行コードもUnix形式(LF)へまとめられます。
nkf --version
を実行してインストール済みか確かめます。コマンドが見つからない場合は次のステップで入れましょう。
Homebrewが使えるなら brew install nkf
を実行します。数秒で準備完了です。
nkf -wLu 入力ファイル > 出力ファイル
を実行します。これでUTF-8かつLF改行の新しいファイルができます。
元ファイルを上書きしたいときは、出力ファイルを同じ名前にするとき慎重にバックアップを取ってから実行してください。
WindowsのExcelで開いて内容をチェックする
エクスプローラーでCSVファイルを右クリックし、「プログラムから開く」→「Excel」を選びます。
文字化け予防には、Excelの「データ」タブ→「テキスト/CSVから」を選び、画面右側で「65001:Unicode(UTF-8)」を指定すると安心です。
列幅を広げてデータを見やすくし、フィルター機能で特定の項目を絞り込みながら文字化けや欠損がないか確認します。
問題が見つかった場合は、元のファイルの文字コード設定を見直し、再度インポートするとスムーズに直せます。
ZIPファイルをWindowsで開いても文字化けゼロ

Macで作成したZIPは標準だとUTF-8で圧縮されるので、Windowsのエクスプローラーで解凍すると日本語ファイル名が文字化けしやすいです。
そこで、Macのターミナルでzipコマンドに文字コード指定オプションを付けるか、Kekaなどの圧縮アプリで「CP932(Shift_JIS)」を選んで作成すると、Windowsでも文字化けゼロでファイル名が表示されます。
この方法ならWindowsユーザーへのファイル共有がスムーズですし、大事な日本語フォルダ名やファイル名もそのまま守れます。
Finderで圧縮前にファイル名をUTF-8にしておく
ターミナルを開き、brew install convmv
と打ってエンターを押します。これで文字コード変換ツールが使えるようになります。
対象フォルダに移動し、convmv -f Shift_JIS -t UTF-8 -r --notest .
と打って実行します。拡張子を含む全ファイル名がUTF-8になります。
実行前に必ずバックアップを取ってから操作してください。
ターミナルでditto-c-kを使ってZIPを作成する
DockやSpotlightからTerminalを開いて、cd
コマンドでZIP化したいフォルダへ移動します。
例:cd ~/Documents/プロジェクト
と入力してEnterキーを押します。
次にditto
コマンドを-c -k --sequesterRsrc --keepParent
オプション付きで実行します。Finderで開いたときにリソースフォークが壊れずに扱えるようになります。
例:ditto -c -k --sequesterRsrc --keepParent MyProject MyProject.zip
と入力してEnterキーを押します。
フォルダ名とZIP名を一致させると、あとで中身を見つけやすくなります。
Windowsで展開して文字化けの有無をチェックする
Windowsではエクスプローラーの右クリック「すべて展開」で手軽に解凍できます。展開後のファイル名に文字化けがないかじっくり確認してください。
テキストファイルが含まれる場合はNotepad++などで開き、メニュー「Encoding」からUTF-8やShift_JISを切り替えつつ中身をチェックすると見落としが防げます。
Gitでの文字化けを防いで共同開発をスムーズに

リポジトリをcloneしたりpushしたりしていると、気づけばdiffやファイル名が文字化けして「何のファイル?」状態になることがあります。共同開発だとチームの誰かが顔をしかめる原因にもなりやすいので、最初に設定をそろえておくとストレスが減ります。
- core.quotepathを無効化:日本語ファイル名をエスケープせず、そのまま表示させることができます。
- i18n.commitEncodingをUTF-8に:コミットメッセージを強制的にUTF-8扱いにして、他の開発環境でも同じ見た目をキープします。
- .gitattributesで文字コードを統一:特定の拡張子を必ずUTF-8化し、改行コードもLFにそろえておくと余計な差分が減ります。
gitconfigにcorequotepathfalseを設定する
まずは今の設定がどうなっているかチェックしましょう。
git config --global --get core.quotepath
表示がtrueだったり何も出てなかったりしたら、以下のコマンドでfalseを入れます。
git config --global core.quotepath false
もう一度確認して、falseが返ってくれば完了です。
git config --global --get core.quotepath
commit時に–encoding=utf-8を指定する
まずターミナルを開いて文字化けを防ぎたいリポジトリのフォルダまで移動します。
以下のように –encoding=utf-8 オプションをつけてコミットを実行します。
git commit --encoding=utf-8 -m "コミットメッセージ"
エンコーディング指定がないとWindowsではデフォルトでcp932が使われることがあります。
Windows側でlogを読んで文字化けがないか確認する
WindowsのコマンドプロンプトやPowerShellでログを表示するときに、文字コードが合っていないと文字化けが起きやすいです。事前に文字コードをUTF-8に揃えるとスムーズに中身を確認できます。
コマンドプロンプトを開いてから文字コードをUTF-8に変更します。
chcp 65001
UTF-8モードになったら、typeコマンドまたはPowerShellのGet-Contentで中身を確認します。
type C:\path\to\your.log
PowerShellで長いログを扱うなら、Get-Content -Path C:\path\to\your.log -Encoding UTF8
を使うと一括で正しく読み込めます。
よくある質問

文字化けを防ぐにはどうすればいいですか?
- 文字化けを防ぐにはどうすればいいですか?
-
テキストを扱うときは、保存時のエンコードをUTF-8(BOMなし)に統一すると安心です。実際にエディタで保存するときに「UTF-8」を選ぶとWindows側でもほとんど文字化けしません。
ファイルのエンコードはどうやって確認できますか?
- ファイルのエンコードはどうやって確認できますか?
-
エディタ(VS Codeなど)を使うと、ウィンドウの右下に「UTF-8」や「Shift_JIS」と表示されます。ターミナルなら
file
コマンドを実行すると、簡単に調べられますよ。
Macから渡すときの注意点はありますか?
- Macから渡すときの注意点はありますか?
-
改行コードがLFのままだとWindowsで開くと段落がつながることがあります。エディタの設定でCRLFに変換して保存すると、受け取る側も読みやすくなります。
Windowsへ送ったPDFが黒四角になるのは文字化け?
Macで作成したPDFをWindowsで開くと、本文が黒い四角だけで表示されることがあります。これは文字化けではなく、使用したフォントがPDFに埋め込まれておらず、Windows側で表示できないためです。
解決策としては、文字をアウトライン化してしまう方法か、フォントそのものをPDFに埋め込む方法が使えます。どちらもWindowsで正しく文字を見せられるので、相手先で黒四角に悩ませる心配がなくなります。
ターミナルで表示される???は放置して大丈夫?
ターミナルで日本語ファイル名や文字列を扱っているときに、予期せず「???」と表示されることがあります。これは本来の文字を読み取れずに代わりに「?」を並べているだけで、システムの動作には影響しません。
この「???」自体は実行結果やファイルの中身を壊さないので、見た目が気にならなければ放置しても大丈夫です。
どうしても修正したい場合は、ターミナルの環境変数をUTF-8に統一したり、フォントを日本語対応のものに切り替えたりすると、本来の文字が正しく表示されるようになります。
convmvやnkfはMacAppStoreから入れられる?
Mac App Storeをのぞいてもconvmvやnkfは見つからないんだ。コマンド操作向けのツールなのでApple公式ストアでは扱っていないんだよ。
だからHomebrewでインストールするのがいちばん手軽だよ。バージョン管理も自動でやってくれるから、ずっと最新の状態をキープできるんだ。
macOSの標準機能だけで全部直せる?
macOSには文字コードを扱うあれこれが標準でそろっていて、追加のアプリを入れずに文字化けの直し屋さんになれます。ファイルのプレビューやテキストエディットで文字コードを切り替えながら開き直すだけで、大抵の文字化けはサクッと解決できるところが魅力です。
- 手間なしインストール不要:macOSだけで使えるから、作業前の準備時間ゼロ。
- プレビュー機能で確認:Finderのクイックルックで文字化け具合を見ながら適切な文字コードを選べる。
- テキストエディットで再保存:開きなおして文字コードを指定し、UTF-8やShift_JISに変換して再保存できる。
まとめ

MacとWindows間で文字化けが起きるのは、ファイルの文字コードが合っていないからでした。
まずはエディタやターミナルの文字コード設定をUTF-8にそろえ、VSCodeやTextEditで開くときに「文字コードを指定して再読み込み」を使って正しいエンコーディングを選びましょう。
大きなファイルを一括で直したいときは、iconvコマンドでUTF-8(BOMなし)に変換すれば手間なくクリアになります。
これで最新のMac環境でも文字化け知らずになれます。次の作業からぜひ試してみてください。