• 締切済み

文字列カットでの文字化けについて

文字列のカットなのですが、 mb_substrを使っても最後が文字化けするので、 エンコーディング名を追加したら文字列がカットされなくなってしまいました。 以下のファイル http://www.hp-toolbox.com/rssup.zip に含まれるrssup.phpの 44行目 if (mb_strlen($title,"SJIS") > 46) { 45行目 $title = mb_substr($title,0,46,"SJIS"); $title .= "..."; 46行目 } です。 どなたか上手くいく方法を教えて下さい。 宜しくお願い致します。

みんなの回答

  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

やりたいことはRSSファイルを取得してきてタイトルが長かったら 途中で切り取って表示したいとの認識でよろしいでしょうか? その場合、おそらく取得してきたファイルのエンコーディングはUTF-8だと思います。 なので一度「UTF-8」を最終的に表示するエンコードに変換してから 切り取るなりなんなりしないと文字化けして当然ですよ?

das_horn
質問者

お礼

ご回答ありがとうございます。 はい、RSSファイルを取得してきてタイトルが長かったら 途中で切り取って表示したいんです。 恐らく、 $title = mb_convert_encoding(strip_tags($ch[$i]['items'][0]['title']), $enc, "UTF-8,EUC-JP,SJIS"); でSJISにエンコーディングされていると思うのですが・・・。

関連するQ&A

専門家に質問してみよう