システムによって、バイト数の制限があることがあります。
よくある例としては、画像ファイルは〇M byteまで など。
まず、言葉の定義から。
1バイトとは
0か1かを表すビットという単位が8つ並んで構成される。2の8乗で256通りのデータ
1KB、1MB、1GB
1キロバイト=1024バイト、1メガバイト=1024キロバイト、1ギガバイト=1024メガバイト
※1000バイト単位でないので注意が必要
半角のアルファベットと数字、1文字のデータ量は1バイト
– 日本語は漢字が数千あり、256種類では表現しきれないので、2バイト(16ビット)で1文字を表現する。いわゆる全角文字。2バイト(2^16)は65536種類の情報を表現できる。
500バイトだと250文字
WordのA4でフォントサイズ10.5で40文字程度
アルファベットは7ビットで表現
つまり1バイト?
PHPでバイト数を図ってみましょう。
strlen()でバイト数を計測
$single = "a"; $multi = "あ"; var_dump(strlen($single), strlen($multi));
あれ、”あ”が3byteになってる。何故だ!?
phpのマニュアルを見てみる。
http://php.net/manual/ja/function.strlen.php
うーん、やっぱりバイトだ。 あ、マルチバイト文字列はmb_strlen()でカウントするらしい。なるほど。つまり、”あ”は3バイトで表現されているってことか。