アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。
名前の占いをしたくて、文字を1文字1文字分解したいと思っています。(姓名判断?!)
それで、
$name="$in{'message'}";#太郎など

$n01=substr($name,0,2);#太
$n02=substr($name,1,1);#郎

#格納されている文字列を表示

print "$name";
print "<br>";

print "$n01";
print "<br>";
print "$n02";

としたのですが、実行結果は
太郎


となりました。
まあ、文字を使うのに、
$n01=substr($name,0,2);#太
$n02=substr($name,1,1);#郎
というのはおかしいのでしょうか?
というわけで、文字を分割したいのですが、何か手段はありますでしょうか?
ちなみにフォームから送られてくる情報は太郎といった状態で、間に/等の文字列は入っていません。
よろしくお願いします。

A 回答 (3件)

>>$n01=substr($name,0,2);#太


>>$n02=substr($name,1,1);#郎

substr関数の仕様を読んでみよう。

確か、「バイト数」じゃね?
    • good
    • 0
この回答へのお礼

バイト数のようですね。しかも全部2バイト?とは限らないみたいで。。。どうもありがとうございました。

お礼日時:2009/01/30 16:52

訂正


正 文字エンコード
誤 文字コード
    • good
    • 0

スクリプト言語と文字コードが不明なので答えられません。


全角一文字 = 2バイト とは限りません。

# php ならば mb_substr を使う
    • good
    • 0
この回答へのお礼

CGI作成で言語?はperlです。文字コードはshift-jisです。
phpではないのですが、ありがとうございました。

お礼日時:2009/01/30 16:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!