【文字コード変換ツール】:before :afterの擬似要素などでの日本語の文字化け対策:原因・対処(回避)方法

2025/07 更新「Unicode変換ツール」を修正しました

以前から:before :afterなどの擬似要素で、contentプロパティに日本語を入れて使用していたのですが、『文字化け』にあまり遭遇することがありませんでした。ですので1,2度見ても『たまたまかな?』と思って気に留めてなかったんです。

:before :afterなどの擬似要素で contentプロパティの日本語が文字化けする!原因と対処(回避)方法

ですが最近新たに立ち上げたサイトで:before :afterを多用してテストをしていたところ、結構な頻度で上の画像のような文字化けがでてきたので、これはほっとけないなぁ。
ということで、文字化け対策用『Unicode変換ツール』を作りました。

Unicode変換ツール

このボックスに変換したい日本語を入力し、変換 ボタンを押すと、Unicodeに変換されます。

変換前の日本語(UTF-8)

変換後(Unicode)


この『:before :afterなどの擬似要素で、contentプロパティ内の日本語が文字化けする原因と対処方法』については、以下に記載しています。

擬似要素の文字化けの原因と対処方法

擬似要素の文字化けの原因

原因は

  • cssの文字コードが『Shift_JIS』ではなく『UTF-8』で作られている
  • そのcssが外部ファイルとして定義されている

この状況の時に起こるようです。

文字コード相違に起因する問題は、この先もどうしようもないんでしょうかねぇ。。

ま、そんなことを言ってもしょうがないので、文字化けの対処(回避)方法を。

擬似要素の文字化けの対処(回避)方法

cssに記載した:before :afterなどの擬似要素のcontentの日本語を、そのまま使うのではなく、Unicodeに変換して記載することで回避できます。

:before :afterなどの擬似要素で contentプロパティの日本語が文字化けする!回避方法:contentの中の記載方法

この画像では、アコーディオンの開閉ボタンに使用していたのですが、これを例にとると、

AccordionBox02 label:after {
  content: "カラー・サイズを見る";
}

このcontentプロパティに書いている日本語「カラー・サイズを見る」を、Unicodeに変換して、

AccordionBox02 label:after {
  content: "\30AB\30E9\30FC\30FB\30B5\30A4\30BA\3092\898B\308B";
}

このように記載すれば、文字化けは回避できます。

追記:2025/07/08
「×2」を変換したところ「%D72」となったため、それをcssで設定して表示させると「%D72」がそのまま表示されてしまっていました。ですので、CSSのUnicodeエスケープの正しい形式に変換するように修正しました。

まとめ

毎回文字化けが起こる訳ではないのですが、確実に『文字化けしない』わけではない!という状況は、やはりあまりよろしくないですよね。

ですので、擬似要素の:beforeや:afterのcontentプロパティで日本語を使用したい場合は、少々面倒ではありますが、変換してから記載して、いらぬ心配をしないで使っちゃってくださいね!

Google AdS



関連記事

MySQL移行ツールにて移行

MySQL 5.5→5.7への移行手順:XSERVER(エックスサーバー)にて


数年ぶりに新規でワードプレスを使用したサイトを作ったのですが、MySQLのバージョン、5.7しか新規では追加できないよう…

記事を読む▷


ドメインの管理、移管を最安値でする!!みんなのドメインへの移管(価格比較表あり)


なにやらみんなのドメインは危険そうなようなので、しばらく様子見た方が良さそうですね。 というわけで、みんなのドメインの…

記事を読む▷


画像やテキストを中央(上下左右真ん中)に配置する方法


普通にtext-align:center;や、margin:0 auto;等でテキストや写真を真ん中に配置したつもりでも…

記事を読む▷


お名前.comで “Whois情報公開代行” の設定にチェックを入れ忘れて登録した時の対処方法


先日、こちら で少し書いたのですが、お名前.comでドメインを取った時に、 "Whois情報公開代行" の設定にチェック…

記事を読む▷


WordPressでGIFアニメが動かない時の対処法


今回アイキャッチ画像にGIFアニメを登録したのですが、登録時、また、メディアライブラリ内ではしっかりGIFアニメとして動…

記事を読む▷


Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください