NetbeansでUnicode絵文字を表示したい!(Windows 10)
前置き
おはようございます、こんにちは、こんばんは。
eF-4エンジニアのかずみです。
みなさんは開発する時にIDEは何を使われていますか?
PHPerのみなさんだと何が多いのでしょうか…。PhpStorm?Eclipse?
ちなみに私はNetbeansを使っています。昔から使っていた事もあって慣れているので。
Netbeansのフォントイマイチ問題
Netbeans、入れて真っ先に何するって、大体の人がフォント設定かと思います。
日本語と英字フォントで分けたりするなら別ですが、普通に1つのフォントを指定するだけなら、メニューからオプション開いて、フォントを選んで…と、GUIでちゃちゃっと設定しちゃえるので楽チンですよね。
うん、1つのフォントを指定するだけなら。
Unicode絵文字を出したい!
最近だとSNSと連携したソフトウェアの開発も増えていて、例えばLINEのトークを送ったり、Twitterに投稿したり、といった処理をプログラミングすることも多いのではないでしょうか。
そんな時、最近はPC含めて一般的に利用可能になったUnicode絵文字をコンテンツ内で使いたい、という話が出てくるのもごく自然なことで、となるとコーディングでも使わなきゃいけないわけで。(DBに入れれば?というのはまた別のお話なので今回はやめましょう)
そうなると、NetbeansのフォントをUnicode絵文字対応のものにしなければなりません。非対応のフォントではこんな風に、絵文字が豆腐(□)になってしまいます。
内部的には絵文字で入っているので問題ないといえば問題ないのですが、これでは後から見たときに何だったかなー?となること間違いなしです。ということで絵文字を出しましょう。
Windows10でUnicode絵文字対応フォントといえば、Segoe UI Emojiです。よしこいつをNetbeansの設定から選べば…。絵文字が出ました!
…日本語が全部豆腐になるじゃん。だめじゃん!
つまりは、日本語には日本語フォントを、絵文字には絵文字フォントを、そして英語には英語フォントを割り当てないとだめなわけです。(Segoe UI Emojiには普通に英字フォントも含まれますが、あまり好きではないので変えたい。)
豆腐をなくそう ~結局行き着くところは設定ファイル記述~
はい、NetbeansのGUI上からではここまで細かい設定はできません。でも安心してください、NetbeansはSwingアプリケーションなので、Java側の設定でなんとかできるはず。
ということで、懐かしのfontconfig.propertiesを弄るしかないですね。
今回は
- 英字はConsolasにして
- 日本語はメイリオにして
- 絵文字も表示できる
という設定にしたいと思います。
それではやってみましょう。
1. 利用しているJREを特定する
Netbeansのインストールの仕方、Javaのインストール状況などによって、NetbeansがどのJREが利用されているか変わってきます。せっかく設定しても反映されない!?とならないように、まずはNetbeansがどのJREを利用しているか確認しましょう。
Netbeansのインストールディレクトリ/etc/netbeans.confに”netbeans_jdkhome=”の記載があると思います。そこに記載のディレクトリが、Netbeansが利用しているJREのインストールディレクトリとなります。そのディレクトリのlib/以下に、fontconfig.propertiesというファイルがあれば編集します。もし存在しなければ同ディレクトリ内のfontconfig.properties.srcをコピーしてリネームしてください。
編集時の注意として、エディタを「管理者として実行」してから、fontconfig.propertiesを開いて編集してください。
2. Consolasの設定
ファイル内の「monospaced.xxx.alphabetic」を書き換えます。xxxはplain・bold・italic・bolditalicの計4種類。下記のようにします。
1 2 3 4 |
monospaced.plain.alphabetic=Consolas monospaced.bold.alphabetic=Consolas Bold monospaced.italic.alphabetic=Consolas Italic monospaced.bolditalic.alphabetic=Consolas Bold Italic |
3. メイリオの設定
ファイル内の「monospaced.xxx.japanese」を書き換えます。(こちらもplain・bold・italic・bolditalicの4種類)
1 2 3 4 |
monospaced.plain.japanese=Meiryo monospaced.bold.japanese=Meiryo monospaced.italic.japanese=Meiryo monospaced.bolditalic.japanese=Meiryo |
4. 絵文字フォント(Segoe UI Emoji)の設定
ファイル内には既存の設定はありません。以下を追加しちゃいましょう。
場所は、「monospaced.xxx.なんちゃらけ」がそれぞれ集まっているところに書くとわかりやすいでしょうか。
1 2 3 4 |
monospaced.plin.emoji=Segoe UI Emoji monospaced.bold.emoji=Segoe UI Emoji monospaced.italic.emoji=Segoe UI Emoji monospaced.bolditalic.emoji=Segoe UI Emoji |
5. 優先順の設定
続いて、フォントの優先順の設定をします。最初のままだと英字部分もメイリオになってしまいますので、優先順の設定は必須です。また、絵文字を最優先にすると、英字フォントに絵文字フォントが適用されてしまいます。ということで、英字→絵文字→日本語の順のフォント優先度にします。
「sequence.monospaced.windows-31j」という設定を、下記のように書き換えます。
1 |
sequence.monospaced.windows-31j=alphabetic,emoji,japanese,dingbats,symbol |
6. フォントファイルの指定
最後に今回設定したフォントたちのファイル名を書き加えます。これはファイルの一番下に追記の形を取ります。今回は以下の6行です。
1 2 3 4 5 6 |
filename.Consolas=CONSOLA.TTF filename.Consolas_Bold=CONSOLAB.TTF filename.Consolas_Italic=CONSOLAI.TTF filename.Consolas_Bold_Italic=CONSOLAZ.TTF filename.Meiryo=MEIRYO.TTC filename.Segoe_UI_Emoji=seguiemj.ttf |
7. Netbeans再起動!
設定が終わったらNetbeansを再起動し、フォントを「Monospaced」に設定します。すると…
はい、ということで、日本語も絵文字も問題なし、英字も綺麗なフォントで出るようになりました👏✨
おわりに
なんとかこういうのGUIから設定できるようにならないでしょうかね…。
それほど大変な作業ではないとはいえ、やっぱり面倒です。
それではまた!
2017年1月にeF-4入社後は主にPHPによるシステム開発に従事中。
髪が長くて派手。爪も超長くて超派手。インターン生が入るたびに「その爪でキーボードを打てるんですか?」と聞かれるのが若干の悩みのタネ…(´・ω・`)
利用言語:C / PHP / Java / JavaScript / Perl
覚えたい:Python / Go / Lua