2007年11月16日

PHPの5C問題

<?php
print '可能';
?>

これをSJISエンコードで実行するとパースエラーになります。
SJISの'能'の文字コードの2バイト目が0x5cなのですが、このコードはASCIIにおけるバックスラッシュ(\)と同じなので、PHPエンジンからすると
print '0x94\';
となり、'がエスケープされてパースエラーになってしまうそうです。

SJISにはこのような地雷のような、マルチバイトがいくつか存在するそうです。最近構築するシステムは基本的にUTF-8なので、自分が遭遇したことはないのですが、他の人の質問に答えるために調べていて知りました。

これって、PHPでSJISは事実上扱えないと言うこと?
posted by 台北猫々 at 23:08| Comment(1) | TrackBack(0) | 技術メモ(PHP)
この記事へのコメント
Perlもそうです。涙
Posted by DQNEO at 2008年12月31日 09:57
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/6840290

この記事へのトラックバック