LoginSignup
14
14

More than 5 years have passed since last update.

Alpine Linux で日本語が文字化けしないようにNotoSansCJKjpを入れる

Last updated at Posted at 2017-07-29

問題

Alpine上のブラウザでキャプチャとか取る時に、日本語フォント部分が文字化けしちゃっている。こんな感じで。

1.png

環境

/ # cat /etc/os-release 
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.6.0
PRETTY_NAME="Alpine Linux v3.6"
HOME_URL="http://alpinelinux.org"
BUG_REPORT_URL="http://bugs.alpinelinux.org"

解決

デフォルトで日本語フォントが何も無いようなので、何か入れる必要があります。

とりあえずこれを流しといたら直るかもしれません。

apk update \
  && apk add --no-cache curl fontconfig \
  && curl -O https://noto-website.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip \
  && mkdir -p /usr/share/fonts/NotoSansCJKjp \
  && unzip NotoSansCJKjp-hinted.zip -d /usr/share/fonts/NotoSansCJKjp/ \
  && rm NotoSansCJKjp-hinted.zip \
  && fc-cache -fv \

fontconfigというパッケージを入れるとfc-listfc-cacheといったコマンドが使えるようになります。あまり良くわかってないですが、こんなことができます。

  • fc-list 利用可能なフォント一覧を表示
  • fc-cache -fv 利用可能なフォントを更新

フォントは/usr/share/fonts/<好きなディレクトリ名>/...な感じで置いておけば大丈夫そうです。今は、/usr/share/fonts/NotoSansCJKjp/*.otfとなるように配置しました。

fc-cache -fvでフォント情報を更新します。

/usr/share/fonts/NotoSansCJKjp: caching, new cache contents: 9 fonts, 0 dirs

上記を流した結果はこんな感じになりました。日本語になってる!!

1.png

試してないけど思ったこと

Mac上のローカルなdockerでalpineイメージを使う場合は、-v ~/Library/Fonts:/usr/share/fonts/Fontsとかすると全部持っていけるので、こっちの方がいいかも。ローカルでは。

効かない時

CSSがいじれる環境なら最低限font-family: sans-serif(もしくは、ダイレクトにfont-family: 'Noto Sans CJK JP')と設定する必要があります。自作Webアプリケーションとかの場合に、この指定をしておくといいかなと思います。

14
14
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14