Processingで日本語表示が文字化けする場合の対処方法

Processingでプログラミングして日本語を表示させると文字化けします。文字化けせずに日本語を表示する方法を説明します。

日本語の文字化け

Processingはそのままプログラミングすると日本語を表示しようとしても文字化けします。

まず確認のためにアルファベットを表示してみましょう。

void setup() {
 size(500, 500);
}

void draw() {
 background(255);
 fill(0);
 textSize(50);
 text("Hello World!", 100, height/2);
}

このプログラムを実行すると画面に「Hello World!」が表示されたと思います。

このまま日本語を表示させてみるとどうなるでしょうか?

void setup() {
 size(500, 500);
}

void draw() {
 background(255);
 fill(0);
 textSize(50);
 text("こんにちは!", 100, height/2);
}

このプログラムを実行すると画面には文字化けしたものが表示されます。

これはProcessingのプログラム実行環境では英字フォントが使われているためです。

そのためプログラムで日本語を表示させるためには日本語フォントを指定する必要があります。

日本語表示する方法

それでは日本語を表示させるために日本語フォント指定をプログラミングします。

以下のコードをsetup()関数の中に追加で記述します。

PFont font = createFont("Meiryo", 50);
textFont(font);

これによりプログラム内で使うフォントを日本語にします。

ここでは、フォントに「メイリオ」を指定しています。

以下は先程のプログラムにフォント指定を追加したものです。

void setup() {
 size(500, 500);
 PFont font = createFont("Meiryo", 50);
 textFont(font);
}

void draw() {
 background(255);
 fill(0);
 textSize(50);
 text("こんにちは!", 100, height/2);
}

これを実行すると、

使用できる日本語フォントはProcessingを動かしている環境によって異なります。

以下のコードを実行すると使用できるフォントのリストをコンソールに表示します。

String[] fontList = PFont.list();
printArray(fontList);

Macで使えるフォントのリストを表示して日本語フォントだけをピックアップしました。

[250] "HiraMaruProN-W4"
[251] "HiraMinProN-W3"
[252] "HiraMinProN-W6"
[253] "HiraginoSans-W0"
[254] "HiraginoSans-W1"
[255] "HiraginoSans-W2"
[256] "HiraginoSans-W3"
[257] "HiraginoSans-W4"
[258] "HiraginoSans-W5"
[259] "HiraginoSans-W6"
[260] "HiraginoSans-W7"
[261] "HiraginoSans-W8"
[262] "HiraginoSans-W9"
[263] "HiraginoSansCNS-W3"
[264] "HiraginoSansCNS-W6"
[265] "HiraginoSansGB-W3"
[266] "HiraginoSansGB-W6"
[360] "Meiryo"
[361] "Meiryo-Bold"
[362] "Meiryo-BoldItalic"
[363] "Meiryo-Italic"
[364] "MeiryoUI"
[365] "MeiryoUI-Bold"
[366] "MeiryoUI-BoldItalic"
[367] "MeiryoUI-Italic"
[454] "Osaka"
[455] "Osaka-Mono"
[665] "YuGo-Bold"
[666] "YuGo-Medium"
[667] "YuKyo-Bold"
[668] "YuKyo-Medium"
[669] "YuKyo_Yoko-Bold"
[670] "YuKyo_Yoko-Medium"
[671] "YuMin-Demibold"
[672] "YuMin-Extrabold"
[673] "YuMin-Medium"
[674] "YuMin_36pKn-Demibold"
[675] "YuMin_36pKn-Extrabold"
[676] "YuMin_36pKn-Medium"

また、ソースコードに記述している日本語が文字化けする場合はProcessingの設定で日本語フォントを設定することで表示できます。