markdown

はじめに (対象読者・この記事でわかること)

ArduinoやArduino IDEを Ubuntu で使用している開発者・初心者を対象にしています。
特に、エディタのメニューやコンパイルエラーメッセージが日本語で文字化けして読めない、といった問題に悩む方が対象です。
本記事を読むことで、以下ができるようになります。

  • 文字化けの主な原因とそれぞれの対処法を体系的に把握できる。
  • Ubuntu のロケール設定やフォント設定を適切に変更し、Arduino IDE の日本語表示を正常化できる。
  • トラブルシューティングの手順を実践し、同様の問題が再発したときに自力で解決できる。

記事執筆のきっかけは、私自身が Ubuntu 22.04 で Arduino IDE を初めてインストールした際、メニューやシリアルモニタが全て「???」になるという壁にぶつかった経験です。その経験を共有することで、同じ悩みを抱える人の助けになればと思い執筆しました。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。

  • 基本的な Linux のターミナル操作(apt, sudo など)
  • Arduino IDE のインストールと簡単なスケッチの書き方
  • Ubuntu のロケールやフォント設定に関する基礎知識(あれば尚可)

背景と概要:Ubuntu での Arduino IDE 文字化け問題

Arduino IDE はクロスプラットフォーム対応の統合開発環境で、Windows、macOS、Linux すべてで利用できます。公式パッケージは .deb 形式で配布され、Ubuntu 系ディストリビューションへは apt あるいは公式サイトから直接ダウンロードしてインストールするのが一般的です。

しかし、Ubuntu の標準設定は英語ロケール(en_US.UTF-8)であることが多く、日本語環境を正しく認識させるためにはいくつかの追加設定が必要です。文字化けは主に次の 3 つの要因で起こります。

  1. ロケール設定が日本語に対応していない
    LANGLC_ALLja_JP.UTF-8 でないと、Qt 系のアプリケーションは日本語リソースを UTF-8 として正しく解釈できません。

  2. フォントがインストールされていない、または Qt が使用できるフォントが無い
    デフォルトの Ubuntu フォントは英字に強い一方で、全角文字の表示が不十分です。特に Noto Sans CJK JP などの日本語フォントが無い環境では「□」や「?」になることがあります。

  3. Arduino IDE 自体の内部文字エンコードが不一致
    Arduino IDE の設定ファイル(preferences.txt)で editor.font が明示的に指定されていない場合、Qt が自動選択したフォントが日本語をサポートしないケースがあります。

この 3 つの要素を順に確認・修正すれば、文字化けはほぼ解消できます。以下、実際の手順を具体的に示します。

具体的な手順と実装方法

ステップ1:システムロケールを日本語に変更

  1. 現在のロケールを確認
    bash locale LANGen_US.UTF-8 など英語系であれば、日本語に変更します。

  2. 日本語ロケールパッケージをインストール
    bash sudo apt update sudo apt install language-pack-ja

  3. ロケールを再生成し、デフォルトに設定
    bash sudo locale-gen ja_JP.UTF-8 sudo update-locale LANG=ja_JP.UTF-8

  4. ターミナルを再起動し、localeLANG=ja_JP.UTF-8 が表示されることを確認。

ポイント
ロケールを変更しただけではすぐに GUI アプリに反映されないことがあります。変更後は一度ログアウト・ログイン、もしくはシステム再起動を行うと確実です。

ステップ2:日本語フォントをインストールし、Qt のデフォルトフォントを設定

  1. 必要な日本語フォントをインストール
    bash sudo apt install fonts-noto-cjk fonts-noto-cjk-extra

  2. インストールされたフォントを確認
    bash fc-list :lang=ja | grep Noto

  3. Qt が使用するフォントを明示的に設定(Arduino IDE の設定ファイルを書き換える)
    設定ファイルは ~/.arduino15/preferences.txt(存在しなければ IDE 起動時に自動生成)です。以下の行を追記または編集します。
    text editor.font=Noto Sans CJK JP,12

  4. Arduino IDE を再起動し、メニューやシリアルモニタの文字が正しく表示されるか確認。

補足
fonts-noto-cjk は全角・半角を含む幅広い文字をサポートしており、Qt が自動的に選択するフォントリストに入ります。これにより、メニューだけでなく、コンパイルエラーの日本語出力やシリアルモニタの文字列も正しく表示されます。

ハマった点やエラー解決

1. locale コマンドで LANG=ja_JP.UTF-8 が設定されたが、IDE がまだ英語表示になる

  • 原因/etc/default/locale が上書きされておらず、GUI アプリが起動時に別のロケールを参照していた。
  • 解決策/etc/default/locale にも同様の設定を書き込み、再起動する。
    bash sudo sh -c 'echo "LANG=ja_JP.UTF-8" > /etc/default/locale' sudo reboot

2. フォントがインストールされても「□」が表示される

  • 原因:Qt がキャッシュされたフォント情報を使用しており、古いキャッシュが残っていた。
  • 解決策:フォントキャッシュを再生成する。
    bash sudo fc-cache -fv

3. preferences.txt が書き換えても反映されない

  • 原因:Arduino IDE が起動中に設定ファイルをロックしていた。
  • 解決策:IDE を完全に終了させ、ps aux | grep arduino で残っているプロセスを kill した後、再度起動する。

解決策のまとめ

  1. language-pack-ja をインストールし、LANG=ja_JP.UTF-8 をシステム全体に適用する。
  2. fonts-noto-cjk 系フォントを導入し、fc-cache でキャッシュを更新する。
  3. ~/.arduino15/preferences.txteditor.font=Noto Sans CJK JP,12 を記述し、IDE を再起動する。

上記の3点を順に実施すれば、Ubuntu 環境での Arduino IDE の日本語文字化けはほぼ確実に解消できます。

まとめ

本記事では、Ubuntu 上で Arduino IDE が文字化けする原因と、ロケール設定・日本語フォント導入・IDE 設定ファイルの3ステップによる解決手順を紹介しました。

  • ロケールを日本語 (ja_JP.UTF-8) に統一
  • 日本語対応フォント (Noto Sans CJK JP) をインストール
  • IDE のフォント設定を明示的に上書き

これらを実践すれば、メニューやシリアルモニタ、エラーメッセージが全て正しく表示され、快適に開発が進められます。次回は、Ubuntu 上での Ard​uino IDE のアップデート方法や、CLI ツール arduino-cli を併用したスクリプト開発について掘り下げる予定です。

参考資料