• 締切済み

PHPで文字化けします

PHPでリンク集を登録、表示するプログラムを考えています。 登録、削除などは出来るのですが、表示部分が文字化けします。 登録内容をcsvに保存して、PHPから読み込んで表示する仕組みなのですが、csvから読み込む部分以外は正常に表示されますが、csvから読み込んだ部分が文字化けします。 サーバーは共用なので、管理者に問い合わせた所、サーバの通常文字コードはUTF-8との事、.htaccess ファイルで EUCへの変換方法を教えてもらったので、試しましたが、csv内に登録した時点で、文字化けした状態で記録されているようで、PHPファイルをsjisにして試しても、EUCにして試しても結果が同じです。 フォームからcsvに登録する時の文字コードを設定したりはできないのでしょうか。 また、公開されているスクリプトで相互リンク登録が出来るようなプログラムをご存知であれば、お教えください。

みんなの回答

  • tomy06
  • ベストアンサー率25% (58/224)
回答No.1

php.iniの関係かもしれないけですね。 phpinfo()を使って、mbstring.http_**の文字コードを確認されてみてはどうでしょう 入力/出力で文字コードが違っているとか 変換の関数を貼っておきます

参考URL:
http://jp.php.net/manual/ja/function.mb-convert-encoding.php
josephat
質問者

お礼

すいません 解決しました。PHPスクリプト内、すべての記述を確認したところ、半角カナ変換という部分があり、sjisにて変換となっていたのが問題だった用です。解決しました。 $str = mb_convert_kana($str,"KV","sjis"); //半角カナ変換 ↓ $str = mb_convert_kana($str,"KV","EUC-JP"); //半角カナ変換 に変更したところ、正常に動作するようになりました。 ありがとうございました。

josephat
質問者

補足

ありがとうございます! 説明不足でした、申し訳ありません。 サーバ管理者より、php.iniの変更は出来ない旨の連絡があり、 プログラムと同じディレクトリに[.htaccess]を置く事で改善する旨説明頂き、試しましたが駄目でした。 ***[.htaccess]*** php_value mbstring.internal_encoding EUC-JP *** PHPのスクリプトもEUCで保存しましたが、書き込みしたcsvを見ると文字化けした状態で保存されます。。。

すると、全ての回答が全文表示されます。

専門家に質問してみよう