LoginSignup
1
0

More than 5 years have passed since last update.

PHPでASCIIコードから文字表示

Posted at

『プログラミングPHP』で、識別子の1文字目について以下のように書かれていた。

PHPでは、変数名や関数名、定数名、クラス名として識別子を使用します。識別子の最初の文字として使用できるのは、アルファベットの大文字と小文字、アンダースコア、そしてASCIIコードで0x7Fから0xFFまでの文字のいずれかのみとなります。

なんで前半は文字の種類を羅列しているのに、後半はASCIIコードなんだろう、全部ASCIIコードで説明できないの?と思って、調べてみた。

参考

ASCII文字テーブル
http://www.asciitable.com/
ASCII - Wikipedia
https://ja.wikipedia.org/wiki/ASCII

確認

以下を実行してみた。

ascii.php
$code = 0x80;

while ($code <= 0xFF) {
    printf('%s', chr($code));
    $code++;
}
$ php ascii.php



!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

文字としては表示されないのもあったりするんですね。
0x80以降は表示方法がわからず・・・。

0x20以前は「制御文字」だから表示はされないみたい。
このへんで何をやってるのか、wikipedia見てもいまいちよくわからなかった。

制御文字 - Wikipedia
https://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E6%96%87%E5%AD%97

結論

ASCII文字には、表示できない文字もたくさんある。(制御文字)
アルファベットの大文字と小文字の間に記号が入っていたりして、連続的にグルーピングできない。

課題

制御文字はそれぞれ何をしているのか?
0x80以降の文字をどうやって表示する方法?

1
0
0

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
1
0