[PHP-users 10398] Re: プログラムのアップ方法
D.Yamashita
php-users@php.gr.jp
Fri, 27 Sep 2002 17:39:15 +0900
山下と申します。
> 半角カタカナのチェックを下記のように行おうと思い
> Windows環境からFFFTPでLinux環境へプログラムをアップした
> いのですが、
> 半角カタカナの部分が文字化けを起こしてしまい、思うように
> 動作出来ません。
>
> 文字化け部分
> if (ereg("[ヲ-゜]", $kana)) {
> echo "半角カタカナが含まれている";
> }
UNIXシステムにおいては、半角カナのフォントが入っている場合は
結構少ないそうなので、文字化けが起こるのもそれが原因ではないかと
思われます。
FFFTPなどの高度なFTPクライアントを使用せず、Windows標準の
FTPコマンドや、samba共有でファイルを転送してみてはいかがで
しょうか?
それからもう一つ。
プログラム上に半カナが入っているのはあまり好ましくないと
思いますので、半カナの"文字そのもの"を判別プログラム内に入れる
のではなく、"文字のASCIIコード"で判別するようにしてはいかが
でしょう?
eregなどの正規表現を使った一発判別処理は不可能かもしれませんが、
SJISかEUCかが決まっているのであれば、これで十分対応可能かと。
# あくまで"意図していることを表現する"ためだけの、
# プログラムを書くと、このような感じかも。
## ※SJISを用いる場合です。
00: for( $i=0 ; i<strlen($kana) ; $i++) {
01: $ascii = ord(substr($i,1,$kana));
02: if( 0x0A <= $ascii && $ascii <= 0xDF )
03: echo "半角カタカナが含まれている";
04: if( 0x7F <= $ascii )
05: $i++;
06: }
EUCの半カナは2バイト文字なので、ちょっと判別が面倒ですが。。。
http://www.mikeneko.ne.jp/~lab/index.html
こちらのホームページに、半カナの文字コードに関する記述が
あります。ご参考にどうぞ。
では。
失礼致します。
国国国国国国国国国国国国国国国国国国国国国国国国
大阪大学大学院 工学研究科 情報システム工学専攻
山 下 大 介
Mail: yamasan@ise.eng.osaka-u.ac.jp
国国国国国国国国国国国国国国国国国国国国国国国国