- 締切済み
太郎を太と郎に分ける方法。
こんにちわ。 名前の占いをしたくて、文字を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);#郎 というのはおかしいのでしょうか? というわけで、文字を分割したいのですが、何か手段はありますでしょうか? ちなみにフォームから送られてくる情報は太郎といった状態で、間に/等の文字列は入っていません。 よろしくお願いします。
- xphp
- お礼率53% (24/45)
- CGI
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- umota
- ベストアンサー率46% (150/324)
訂正 正 文字エンコード 誤 文字コード
- umota
- ベストアンサー率46% (150/324)
スクリプト言語と文字コードが不明なので答えられません。 全角一文字 = 2バイト とは限りません。 # php ならば mb_substr を使う
- STICKY2006
- ベストアンサー率29% (1536/5269)
>>$n01=substr($name,0,2);#太 >>$n02=substr($name,1,1);#郎 substr関数の仕様を読んでみよう。 確か、「バイト数」じゃね?
お礼
バイト数のようですね。しかも全部2バイト?とは限らないみたいで。。。どうもありがとうございました。
関連するQ&A
- エクセルで鈴 木 太 郎となっているのを鈴木 太郎としたい。
1000件データーベースがあり名字と名前が1文字あいているので例えば、 鈴 木 太 郎 となっております。それをすべて 鈴木 太郎 としたいのですが、どうすればいいでしょうか?? 3文字の名字の人はとりあえず手作業で直そうと思うので2文字名字と名前をうめる方法があればおしえてください。。。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- cgiで文字列操作
文字列$FILENAME1から★★より右側だけ取り出したいのですが、★★がない場合もあるので、 以下のようにしてみました。 -------------------- $FILENAME1 = "*****★★****"; print "文字列は「$FILENAME1」<BR><BR>\n"; $DIR = "★★"; $MOJISUU = length $DIR; print "探す文字列は「$DIR」<BR><BR>\n"; $position = index $FILENAME1,$DIR; print "$DIRの文字位置は「$position」<BR><BR>\n"; if ($position > 0){ $FILENAME = substr($FILENAME1,$position+$MOJISUU); print "$FILENAME<BR>\n"; } else { print "$FILENAME<BR>\n"; } -------------------- ★★が入ってる場合はうまくいくのですが、入っていない場合うまくいきません。 (結果が表示されない) どこを直したらいいのでしょうか?
- 締切済み
- Perl
- VBA 文字間に半角スペースを入れる
OSは Win7、Excelは2013 を使用しています。 F列に名前が入っています。 名前の文字の間に、半角スペースを入れたいのですが、 (山田太郎 → 山 田 太 郎) 名前なので文字数がそれぞれ違うので、どうすればいいかわかりません。 どなたかご教示いただけたら有難いです。 よろしくお願い致します。
- ベストアンサー
- その他MS Office製品
- 文字列分割方法
フォームから入力されたデーターを文字数により4分割したい場合、 シングルバイトとマルチバイト文字列が混在していると、文字化けが起こってしまいます。 私が考えた方法は <?php $test="あああああいいいいいうううううえええええ"; $length = strlen($test); $length2 = (int)$length/4 $quarter[] = substr($test,0,$length2); $quarter[] = substr($test,$length2,$length2); $quarter[] = substr($test,$length2*2,$length2); $quarter[] = substr($test,$length2*3,$length2); echo $quarter[0]."<BR><BR>"; echo $quarter[1]."<BR><BR>"; echo $quarter[2]."<BR><BR>"; echo $quarter[3]."<BR><BR>"; ?> というものだったんですが、この場合$testに半角文字のaなどが入ると 文字化けしてしまいます。 上手く、マルチバイト・シングルバイト複合文字列を文字数により4分割する方法はないでしょうか? ご教授ください
- ベストアンサー
- PHP
- エクセルのセル内のデーターからスペースのみ取り除きたい
下記のように,エクセルで1つのセルに,例えば氏名で1文字ずつスペースが入っているような場合に,スペースだけを取り除き,文字だけにする方法を教えてください。 赤 城 太 郎→赤城太郎
- ベストアンサー
- オフィス系ソフト
- エクセルでのスペース削除
教えてください。。。 例) 山 田 太 郎→山田太郎と文字間のスペースを削除したいのです。TRIM関数だと前後のスペースしか削除されません。どうぞ宜しくお願いします。。。
- ベストアンサー
- オフィス系ソフト
- フィールドを結合して検索
お世話になります。 データベースには、「name1」「name2」と 2つのフィールドに姓名が分かれて入っています。 検索で、「山田太郎」と入力されたとき、 「name1」「name2」を結合した列で抽出したいのですが どのようにSQLを書けばいいのでしょうか? よろしくお願いします。
- ベストアンサー
- PostgreSQL
- 文字間の空白の削除を教えてください。
全角文字の文字間にある空白を削除したいです。 山 田 太 郎 → 山田太郎 下記のとおり置き換えようとしてもダメでした。 select replace('山 田 太 郎',' ','') from user_master; 左空白削除(ltrim() 関数)、右空白削除(rtrim() 関数)、左右空白削除(trim() 関数)などは、ありますが。。。 文字間の空白削除は、どうすれば良いのですか?
- 締切済み
- PostgreSQL
- エクセル:スペースをなくす方法
例えばA1-A5セルに以下のような1文字ずつスペースが ある状態で入力されているとします。 山 田 太 郎 山 田 花 子 田 中 一 郎 佐 藤 次 郎 佐 藤 紀 子 これらをC1-C5セルにコピー&ペーストする場合 山田 太郎 山田 花子 佐藤 一郎 佐藤 次郎 佐藤 紀子 とする方法はありますか? ご存知の方いらっしゃいましたら教えて下さい。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
CGI作成で言語?はperlです。文字コードはshift-jisです。 phpではないのですが、ありがとうございました。