文字の中には、1文字表すことができない文字があります。
そういう文字は、「\」を最初につけた2文字の組合せで1文字を
表します。
これをエスケープシーケンス(escape sequence)といいます。
使っているパソコンの環境によって、「\」がバックスラッシュで
表示されることもあります。
エスケープシーケンス | 表す文字 |
---|---|
\t | 水平タブ |
\n | 改行 |
\r | 復帰 |
\" | " |
\\ | \(バックスラッシュで表示される場合があります) |
\$ | $ |
\*** | 8進数の***の文字コードをもつ文字 |
\xhh | 16進数hhの文字コードをもつ文字 |
書いていても分かり難いので、
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>php エスケープシーケンスを出力し、 文字コードを使って文字を出力してみる</title> <link rel="stylesheet" href="../style.css"> </head> <body style="padding:32px 0 0 32px;"> <?php echo "<table border=\"2\">"; echo "<tr bgcolor=\#aa00aa\">"; echo "<th>英語の挨拶</th>"; echo "</tr>"; echo "<tr>"; echo "<td>\"Hello\"</td>"; echo "</tr>"; echo "<tr>"; echo "<td>\"See you\"</td>"; echo "</tr>"; echo "</table><br>"; echo "文字コードを使って文字を出力する"; echo <<< characterCode <table border="3"> <tr> <th>文字コード</th> <th>文字</th> </tr> <tr> <td>8進数:141</td> <td>\141</td> </tr> <tr> <td>16進数:61</td> <td>\x61</td> </tr> characterCode; ?> </body> </html> |
特殊な文字を表すには、エスケープシーケンスを使います。
文字コードを使ってみる
コンピューターの内部では、文字も数値として扱っています。
書く文字のかたちに対応する数値を文字コード(character code)といい、
文字コードの種類はたくさんあります。PHPではUTF-8を使います。
上記で出てきた「\***」「\xhh」を出力すると
指定した文字コードに対応する文字が出力されます。
サンプルコードの28行目以降をみると、
8進数「141」がa、16進数「61」がaに対応しています。
使っているPCが別の文字コードを使用している場合は、
サンプルコードの結果のように表示されないことがあります。