セットアップ
サーバーで日本語が文字化けする:ロケールの設定
2026年8月20日
この記事はAIが下書きを作成しています。内容に誤りに気づいた場合はお問い合わせよりお知らせください。

レン
SSHでログインしたら、日本語のファイル名が全部おかしな記号になってる…

プロクラ
文字の扱い方の設定が噛み合っていないんだ。これはサーバー側だけの問題ではなくて、接続している側との組み合わせで決まる。両方を見る必要があるよ。
どちらがずれているか
- locale コマンドで、サーバー側の設定を確認する
- UTF-8になっていなければ、そこが原因の可能性が高い
- 接続に使っている端末ソフトの文字コード設定も確認する
- 両方がUTF-8で揃っていれば、通常は化けない

プロクラ
サーバー側が英語のまま(Cロケール)になっていることが多いよ。これは既定としては妥当な設定で、壊れているわけではない。日本語を扱う必要が出たときに、初めて問題になる。
設定する場所

プロクラ
設定できる場所がいくつかあって、優先順位がある。どこで設定するかによって、影響する範囲が変わるよ。
- システム全体の設定(すべてのユーザー・すべてのプログラムに影響)
- ユーザーごとの設定(自分のログイン時だけ)
- その場だけの設定(今のセッションのみ)
- 定期実行から動くプログラムには、また別の環境が使われる点に注意

プロクラ
4つめが落とし穴だよ。手で実行すると正しく表示されるのに、定期実行だと文字化けする、という症状の原因になる。定期実行の中で明示的に指定するのが確実だ。
必要な言語データが入っているか
- 指定した設定が使えるかは、locale -a で一覧を確認する
- 一覧に無ければ、その言語のデータを追加する必要がある
- 追加は、パッケージの導入や生成のコマンドで行う
- 指定しても反映されない場合、これが原因のことがある
あえて英語のままにする判断

プロクラ
実は、サーバー側を英語のままにしておく利点もあるんだ。エラーメッセージが英語で出るほうが、検索して情報を見つけやすい。
- 英語のメッセージは、そのまま検索できる情報量が多い
- 手順書や公式の資料も、英語の表示を前提にしていることが多い
- 日本語のファイル名を扱う必要が無いなら、変える理由は薄い
- 扱う必要があるなら、文字コードだけUTF-8にして、表示は英語という選択もある

プロクラ
最後が現実的な落としどころかな。日本語のファイル名が正しく扱えて、メッセージは英語のまま。調べやすさと実用性の両方が取れるよ。

レン
サーバーと端末の両方を見る。定期実行では別に指定が要るんだね。
データベースの文字コードとは別の話

プロクラ
混同しやすいので分けておこう。ここで扱っているのは、サーバー上での表示やファイル名の話。データベースに保存された文字が化けるのは、また別の設定だよ。
- 端末での表示・ファイル名 → ロケールの設定
- データベースの中身 → データベース側の文字コード設定
- Webページの表示 → 送信時に宣言する文字コード
- どれも独立しているので、症状が出た場所で切り分ける
あわせて読みたい
- セットアップさくらのVPSlogrotateが効いていない:設定したのにログが増え続ける設定を書いたのに回らない原因を、実行のきっかけ・設定の書式・ファイルの持ち主の3方向から確認します。回った後にログが書かれなくなる問題も解説します。
- セットアップConoHa for Windows Server再起動したらサービスが上がってこない手で起動すると動くのに、再起動後は止まったままになる原因。自動起動の設定、起動順序、依存関係の書き方を確認する手順を解説します。
- セットアップConoHa for Windows Server自動更新は入れたのに、再起動されていない更新が適用されても、動いているプログラムは古いままです。再起動が必要かを確認する方法と、無人で再起動させる設定の是非を解説します。
- セットアップVultrSSHのポートを変えたら繋がらなくなった変更が反映されない、ファイアウォールで塞がれている、SELinuxに拒否されている。3つの原因を切り分ける手順と、安全な変更の進め方を解説します。
サーバーを触る前に押さえておきたいこと
姉妹サイトの、この記事と相性のいいページです。
- Linuxコマンド入門
ls / cd / grep などを疑似ターミナルで試しながら学べる — prodou.net
- シェルスクリプト入門
サーバー作業の自動化スクリプトを基礎から — prodou.net
- Password Generator
サーバー用に強いパスワードをその場で生成 — toolkitbox.net
- Cron Generator
定期実行のcron式を組み立てる — toolkitbox.net