PHP, JavaScript文字列のUnicode文字を数値で指定する : PHP, JavaScrpt

Pocket

PHP, JavaScriptでUnicode文字を数値で指定するメモ。

PHP

PHPの引用符はシングルクォートとダブルクォートがある。シングルクォート文字列(以下’文字)とダブルクォート文字列(以下”文字)では利用できるエスケープシーケンスが異なる12
Unicode文字の数値指定は”文字列でエスケープシーケンスを使う。PHPはUTF-8で符号化したUnicode文字をエスケープシーケンス使い8進数(\[0-7]{1,3})または16進数(\\x[0-9A-Fa-f]{1,2})3で指定する。

» 文字列 – Manual
» Unicode – Wikipedia

PHP”文字列で「あ」を16進数表記と8進数表記で表す

文字 16進数表記 8進数表記
\xE3\x81\x82 \343\201\202

JavaScript

JavaScriptも’文字列と”文字列がある。PHPとは異なりどちらでもエスケープシーケンスを使いUnicodeを指定できる(\uXXXX)。
PHPと異なりJavaScriptは符号化にUTF-16を使う(\u[0-7]{4})。

文字 PHP16進数表記(UTF-8) PHP8進数表記(UTF-8)
\xE3\x81\x82 \343\201\202|\u3042

色々な文字の指定

文字 PHP”文字列エスケープ JavaScriptエスケープ URLエンコード HTML数値文字参照
水平タブ \11 (8進数), \x09 (16進数), \t (キャラクター) \u0009 (16進数), \t(キャラクター) %09
\42 (8進数), \x22 (16進数), \” (キャラクター) \u0022(16進数), \”(キャラクター) %22
\343\201\202 (8進数), \xe3\x81\x82\x0a(16進数) \u3042 %E3%81%82

» Unicode ~UTF-8、UTF-16との違い~(文字コード関連) | 読み物 | ウナのIT資格一問一答
» UTF8エンコードをデコードする
» 文字列 : PHP | FindxFine -Web制作に関するメモ-


  1. PHP”文字列はUnicodeの数値指定のほかに下記のエスケープシーケンスが使える。
    \n ラインフィード (LF またはアスキーの 0x0A (10)) 
    \r キャリッジリターン (CR またはアスキーの 0x0D (13)) 
    \t 水平タブ (HT またはアスキーの 0x09 (9)) 
    \v 垂直タブ (VT またはアスキーの 0x0B (11)) (PHP 5.2.5 以降) 
    \e エスケープ (ESC あるいはアスキーの 0x1B (27)) (PHP 5.4.0 以降) 
    \f フォームフィード (FF またはアスキーの 0x0C (12)) (PHP 5.2.5 以降) 
    \\ バックスラッシュ 
    \$ ドル記号 
    \”二重引用符エスケープシーケンスの違いの他に変数の展開の違いがある。
    PHP’文字列のエスケープは下記の2つだけ。
    * シングルクウォート => \’
    * 文字列末尾の\ =>\\

    引用符をリテラルとして指定するには、バックスラッシュ (\) でエスケープする必要があります。 バックスラッシュをリテラルとして指定するには、二重 (\\) にします。 それ以外の場面で登場するバックスラッシュは、すべてバックスラッシュそのものとして扱われます。 つまり、\r や \n といったおなじみのエスケープシーケンスを書いても特別な効果は得られず、 書いたままの形式で出力されます。
    » 文字列 – Manual 

  2. PHPの’文字列と”文字列の違いはエスケープシーケンスの他に変数展開の有無がある。’文字列は変数を展開しない。”文字列は変数を展開する。 
  3. JavaScriptの’文字列, “文字列のエスケープシーケンスの違いは\’と\”のだけ。 

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。