SNSのアイコンが文字化けして「□」になってる!
あるいはサイトを運営していて悩んだことはありませんか?
見た目がお豆腐ですから。
ただ現在では死語に近いので、使ってる人はインターネット老人会に属しています(私も含めて)。
サイト訪問者・サイト管理者のどちらにも対応しています。
豆腐が発生する原因
文字化けです
多くのサイトにおいて、SNSの拡散ボタンなどのアイコンはFont Awesomeで表示されています。
Font Awesomeは画像ではありません。
その名の通りフォントの一種です。
それゆえに様々な原因で文字化けが引き起こされます。
原因の切り分け
豆腐はサイト訪問者・サイト管理者のどちらの原因でも起こりえます。
そのため、まずはどちらに問題があるか切り分ける必要があります。
切り分ける方法は、
これで正しく表示される場合は訪問者の環境に原因があります。
正しく表示されない場合は、さらに次の手段を講じます。
拡張機能プラグインの中にはシークレットウィンドウでも適用させるオプションを持つものもあるためです。
(オフがデフォルトだとは思いますが念のためです)
これで正しく表示されるなら、やはり訪問者の環境に原因があります。
以上の手段によっても豆腐のままの場合はサイト側に原因があります。
訪問者が原因の場合
Font Awesomeは画像ではなくフォントです。
そのため、
かようなプラグインの例としては「(旧)強制メイリオちゃん」や「Stylus」が挙げられます。
文字フォントではFontAwesomeのアイコンに対応できないので文字化けを起こすわけです。
ちなみに、この2つのプラグインは私に生じたケースでもあります。
プラグインが異なるとはいえ同じ失敗を繰り返すとは……。
ただし「(旧)強制メイリオちゃん」は「部分強制メイリオちゃん」に転生を遂げています。
適用させるフォントを限定することでFont Awesomeに影響が及ばないよう工夫しています。
サイト側が原因の場合
1 単純な記述ミス
まず、単純にコードの記述ミスをしている可能性があります。
Chromeなら該当箇所を選択して右クリック。
「検証」でチェックしてみてください。
2 FontAwesomeの4と5のフォント名を間違えて記述している
FontAwesomeのバージョン違いのコードを記述しているケースが考えられます。
4と5(恐らく6も)の間で起こりえます。
例えばTwitterのケース。
- FontAwesome4 fa fa-twitter
- FontAwesome5 fab fa-twitter
ブランドアイコンのbがつくようになりました。
このミスは案外あります(当サイトも含めて)
4を使っていたサイトが5に移行すると高確率でどこかに問題が生じます。
テーマが管理する部分は自動で変えてくれます。
しかし独自カスタマイズを施した部分は自分で直さなければいけません。
その過程で見落としてしまうんです。
見落とし対策について。
記事内に限ってならプラグインSearch Regexが使えます。
起動して「fa- fa」で検索を掛けると、記事内で使っているバージョン4のFontAwesomeが並びます。
どのアイコンを使っているかをチェックして、今度はそのアイコン名で検索してリライトします。
twitterなら「fa fa-twitter」で検索、「fab fa-twitter」に一括でリライトできます。
この作業を繰り返します。
ただ、独自カスタマイズの場所はそんなに多くないはず。
ざっと眺めた後は自分で直接直した方が早いと思います。
3 Font Awesomeを非同期で読み込んでいる
Font Awesomeを非同期で読み込んでいる可能性もあります。
テーマのサイト高速化機能として備わっていたりするのですが、正しく読み込まれなくなる副作用があります。
もちろん対処法は、
非同期読み込みを止めてください
4 Xのアイコンが鳥マークのままになっている
豆腐ではありませんが、Xのアイコンが鳥マークのままのケースもあります。
これはFont Awesome4と5がXに対応していないためです。
少なくともCocoonについてはテーマでXアイコンを用意してくれています。
なのでCocoonの最新版にアップデートすれば大部分に適用されます。
(ウィジェットなどを含む)独自カスタマイズ部分については自分で修正してください。
5 テーマのアップデートが正しく適用されていない
テーマをアップデートしたはずなのに表示されない!
あるいは、
テーマをアップデートしたら表示されなくなった!
実はこういう現象もあるんです。
理由はテーマのアップデートがきちんとあたっていないためです。
手動でアップデートをやり直してください。
まとめ
Font Awesomeが豆腐になるケースは多くの場合で人災です。
自戒を込めてそう言わせていただきます。
頑張って修正してください……