- ベストアンサー
vodafoneが言う事ききません
お世話になります。 携帯3機種対応のサイトを作っています。 Mysqlからデータを読み込み、フォームを使ってMysqlの方にデータを受け渡しをしています。 文字化けで色々と大変だったのですが、 現在は全てEUC-JPで統一する事で docomo,au,vodafone全ての携帯機種で正常にサイトが表示されています。 がっ!! docomo,auではフォームから送信したデータを問題なく受け取ることができるのですが、 vodafoneだけどうしても文字化けしてしまいます。 vodafone用ページを作成して全てshift-jisに統一してもこの問題が解決しません。 色々と調べている中でvodafoneのみEUCに対応しているとの記述を見かけたのですが、 だったら何故?と言わずにいられません。 サーバー・Mysql共にロリポップです。 原因と解決法が知りたいです。 詳しい方、よろしくお願いします。 *初心者です
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- Hardking
- ベストアンサー率45% (73/160)
回答No.3
- moon_night
- ベストアンサー率32% (598/1831)
回答No.1
お礼
御礼が遅くなりすみません ENCDBをENCDISPに変更し、 フォームデータ変換部分に少し手を加える事で解決しました。 一緒に考えて下さって有難うございました。 また見かけたらよろしくお願いします
補足
再度のご回答有難うございます。 別の設定ファイルに //表示文字コード define("ENCDISP", "EUC-JP"); //データベース文字コード define("ENCDB", "EUC-JP"); とあり、 mb_convert_encoding($string,ENCDB, $det_enc); の部分のENCDBがこれにあたると思います。 設定ファイルの表示文字コード define("ENCDISP", "SJIS"); にしてみましたが、 ここ↓ $det_enc = mb_detect_encoding($string, "SJIS","EUC-JP"); if ($det_enc and $det_enc != ENCDB) { return mb_convert_encoding($string,ENCDB, $det_enc); } else { return $string; } } を、どう触れば良いのか 部分的に変えてみたりしたのですが if とか else とかあると怖くって大きく変更できないです>< 部分・部分は調べると意味が出てくるのでそうなんだー・・・と理解できるのですが・・・。 echo mb_convert_encoding($hoge, "SJIS", "EUC"); これは、このスクリプトに対応するhtmlの方に記述するものなのでしょうか? 何度も本当に申し訳ありません。 実は(バレてると思いますが)とっても素人なのでよろしくお願いしますm(_ _)m もちろん、こうしている間にも頑張って調べてますので、どうか見捨てないで下さい(T▽T)