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)

さて、どうしよう。

めっきり寒くなりましたね。
布団の中の幸せ空間から抜け出すのに苦労します。

それは、さておきJavaでデータベースへのデータインポートツールを作ることになりました。要件的にはORマッピングのフレームワークを使えそうなのですが、どうしようかなと思っている次第で。

使うとするとHibernateかiBATISあたりかと思っていますが、Hibernateは以前にちょっと評価した時にあまりの設定の煩雑さにやられてしまっているので、iBATISかなと。

ただ、ORマッピングツール体制反対派としては、JDBCで手書きするとこともありだなあと。猫
posted by 台北猫々 at 22:58| Comment(0) | TrackBack(0) | 日記