• ベストアンサー

splitしない文字列について

split("\t",$moji) で$mojiを分割しているのですが、タブ区切りなのに分割しない文字列があります。 企業秘密な所もあり、問題の文字列そのままを報告できないのですが、分割をキャンセルするような文字コードってあるのでしょうか? その文字コードであやしい物は 「 」:スペース 「!」、「♪」 などが含まれています。 通常であれば10個に分割される文字列がまったく分割されなく分割数は1と出ます。もちろんタブ区切りになっています。 1つの文字列だけの事なのです。原因はまったく不明。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

文字コードの関係かもしれません。 分割しない文字コードはS-JISですか? EUCに変更すれば正常に動くかもしれません。

goroneko-begin
質問者

お礼

文字コードが原因でした。秀丸で見たら文字コードが原因なのかもわかりません(SJIS)でしたが、文字コードをいろいろと変換すると問題が解消されました。ありがとうございます。

その他の回答 (1)

  • tommyt
  • ベストアンサー率50% (1/2)
回答No.1

問題の文字列が開示できないなら解決は難しいかと思いますが・・・ 単純なタブ区切りの文字列を分割するだけならば わざわざ正規表現を使うsplitを使うよりも、単純に文字列で 区切るexplodeを使った方がよいかと思います。 特にsplitにこだわる理由がなければ一度explodeで試してみてはいかがですか? 分割されない文字列が分かっているのですから、億劫がらずに 何度もテストと検証を行えば30分くらいで原因が分かるかと思いますよ。 回答になってませんが、がんばってください。

参考URL:
http://php.s3.to/man/function.explode.html
goroneko-begin
質問者

お礼

原因は文字コードでした。ただ、区切り方については非常に参考になりました。ありがとうございます。