本文ボリューム : 画面分

cssのcontentに使う日本語をunicodeに変換する用フォーム

cssのafter擬似要素やbefore疑似要素のcontentに日本語を用いる際には、unicodeに変換する必要があります。

今までは公開されているツールを使っていましたが、毎回ツールを使わせてもらうのも微妙ですし、変換だけなら難しくないと考えて自作した次第です。

:


上記でとりあえず変換可能なはずです。

コード

コードは以下の通りですが、jQueryなどはつかっておらずただのjsです。


<form name="unicodeTransformation">
  <input type="text" value="" id="input-text"> : <label for="input-text">変換したい文字列を入力</label><br>
  <input type="button" value="unicode変換" onclick="unicode_content()"><br>↓<br><input type="text">
</form>

function unicode_content(){
  //変換ボタンを押したら変換後の値を初期化
  document.unicodeTransformation.elements[2].value;
  var str;
  var str = document.unicodeTransformation.elements[0].value;
  //サニタイズ
  var str = str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
  //unicodeにエンコード
  var str = escape(str);
  //%uをバックスラッシュに置換し、半角スペースの%20を¥a0に置換
  var str = str.replace( /%u/g,"\\").replace( /%20/g,"\\a0");
  //変換後のinputに値をセット
  document.unicodeTransformation.elements[2].value=str;
}

参考サイト

以下のサイトを参考にしました。

結び

目的の動作はできましたが、何でもかんでも変換というのは考えていないのと、サニタイズあたりが少々不安なので汎用性はあまり無いと思いますが。

8人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。