携帯で文字化けする理由と回避策

このQ&Aのポイント
  • 携帯で文字化けする理由や回避策について教えてください。
  • PC用サイトと携帯用サイトを作成している際、携帯での文字化け現象が起こっています。
  • 日本語のみが化け、英数字は問題ない状態です。どうすれば回避できるでしょうか?
回答を見る
  • ベストアンサー

携帯でだけ文字化けするのはなぜ?

PC用サイト、携帯用サイトを作成しているのですが、 ある画面では携帯用だけ化けるのです。 動きは以下のような感じです。 1、画面Aのテキストエリアに文字を入力 2、画面Aの「確認画面へ」ボタンで画面B(確認画面)を表示   (画面Aで入力された内容が表示される) 3、画面Bには「戻る」「登録」ボタンがあり、「戻る」で画面Aへ戻る。 4、画面Aが表示され、テキストエリアに入力されていた内容が表示された状態となる。 という感じです。 やっていることは、 画面Aで入力された内容を画面Bではhiddenでも持たせておいて、 画面Bの「戻る」で画面Aが表示された場合はそのhiddenの値を テキストエリアにセットしているだけです。 当然PC用画面はこの方法で問題ないです。 なぜ携帯用ブラウザだと化けてしまうのでしょうか? 日本語だと化けるだけで、当然英数字は化けません。 何か回避策があれば教えてください。 ちなみに、PHP4.3で開発中、文字コードはUTF-8  です。

  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • wish46
  • ベストアンサー率78% (29/37)
回答No.2

フォームの出力エンコードも変える必要があるかと。 $test = mb_convert_encoding($test,"SJIS","UTF-8"); など

ktry320
質問者

お礼

できました! ありがとうございます!!

その他の回答 (1)

  • wish46
  • ベストアンサー率78% (29/37)
回答No.1

携帯の基本エンコードってShift_JIS でなかったかな。。。 UTF-8て書いた場合全てShift_JISで出力しないと当然マルチバイト文字は文字化けしますよ。

ktry320
質問者

補足

回答ありがとうございます。 では、対応はどうすればよいのでしょうか? 現状は、 ・PHPのソースはUTF-8で書いてて、それをサーバにUPしている。 ・キャラセットは、<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> としている。 charset=UTF-8 をShift_JISにしても状況変わらずでした。。。

関連するQ&A

  • ボタンを押してテキストに文字をセットする

    教えてください。 画面イメージが Aテキスト ボタン Bテキストのように配置しています。 そこでAテキストにコードを入力後にボタンを押してBテキストに名称をセットするようにしたいのですが。 検索する文字列はhiddenでセットしています。 30112900,A商店,45890736,B商店,78653672,C商店・・・ このような文字列を使用し、「30112900,A商店」が1レコードのイメージです。 Aテキストに「45890736」を入力してボタンを押すと文字列から検索してBテキストに「B商店」を表示されるようにしたいのです。 質問の内容も分かり難いかと思いますが、どうぞ宜しくお願い致します。

  • テキストエリアにあわせた文字サイズ変更

    Javascript自体うまく動かすことができず、 サンプルを探しても見つからず、困っております。 やりたいことは、 Aのテキストエリアに入力した文字を「OK」ボタンクリックと同時に Bという別のテキストエリア(エリアの枠は固定)にリサイズ表示させたいと思います。 テキストエリア自体を文字数により大きくするサンプルはありましたが その逆のテキストエリアのサイズに文字をあわせるものが見つかりません。 申し訳ありませんが、おしえていただけますでしょうか。

  • 「~」だけ 文字化けする。

    PHP初心者です。 フォームから入力された文字をテキストファイルに保存して、その保存されたテキストファイルを別ページで表示しています。 簡単なメモ帳みたいな感じです。 フォーム画面と入力完了画面は EUC-JPで、 表示している画面はUTF-8です。 表示画面で <ul> <?php $file = "hoge.txt"; $txt = file($file); foreach ($txt as $value){ $value = mb_convert_encoding($value,"utf-8"); echo "<li>".$value."</li>"; } ?> </ul> と記述しています。 全ての文字化けを確認したはけではないのですが、記述内容の 「~」の文字だけ変な文字になっています。 ここに貼り付けても上手く表示されてないのですが「〜」となっています。 何か原因分かる方おられましたら、アドバイスお願いします。

    • ベストアンサー
    • PHP
  • 入力フォームから受け取ったテキストの文字化け対策をお願いします。

    現在入力フォームから変数を受け取って、確認画面を表示させたいのですが、テキストエリアから日本語を取得しようとしても文字化けしてしまいます。どういったことが原因なのでしょうか?IE、firefoxともに文字化けします。

    • ベストアンサー
    • PHP
  • ダブルクォート文字などをフォームで送るとき

    フォームに <input name="txt_title" type="text" size="60"> というテキストがあります。 確認ボタンをおすと確認ページにSubmitされます。 確認ページに <INPUT type="hidden" name="txt_title"> を設置しているのですが、 txt_titleに「"」とかを入力する場合、 value="タイトル"あああ"" と入ってしまい、登録するとき「タイトル」の文字までしか入ってきません。 いちおうHiddenにいれる文字は $string =~ s/"/"/g; で変換してから入れているのですが、どうしてでしょうか?またどうすればいいでしょうか。 シングルクォートだけでなく、テキストエリアの改行文字の入れ方も教えてください。  

    • ベストアンサー
    • Perl
  • テキストエリアにカーソルを自動的に移動させる方法

    ASPで、 テキストエリア(フォーム)    ↓ テキストエリアの入力をファイルに書き込み    ↓ ファイルの内容を一覧表示 の順に処理を並べて組んでいます。 テキストエリアに文字を入力したあと、送信ボタンを押すと、 ファイルに書き込んで、ファイルの内容を画面に表示します。 カーソルが、画面の下にいってしまいます。 一度テキストエリアの外に行ってしまったカーソルを、自動的に テキストエリア内に戻す方法を教えてください。

  • "+"文字が" (スペース)"に文字化け?します

    お世話になります。 2フレームの画面(画面A,画面B)にて 次の操作を行った場合、 「+」が入ったパラメタがうまく送信されません (1)画面Aに検索条件を入力 (2)画面Aの「検索ボタン」を押下 (3)該当する情報を画面Bに表示 普通は、 「検索ボタン」→サーブレット→画面Bのjsp という順番ですが 今回作っているものは 「検索ボタン」→画面Bのjspを呼び出す→画面Bのjsp内で、条件取得クラスを呼ぶ という作りです。 条件取得クラスを呼ぶ前に、入力された条件を 取得したいのですが、 入力条件に「+」が入っていると、「 (スペース)」に 変換されます。。。 例:入力条件「123+45」→「123 45」 原因・対処がおわかりの方、よろしくお願い致します --------------------------------------------- 【画面A→画面Bの呼び出し】 parent.画面B.location.href = '画面B.jsp?KEY=' + 入力値 (alert()でurlを見てみると→「画面B.jsp?KEY=123+45」) 【画面Bでの入力値取得】 String key = request.getParameter("KEY"); (System.out.printlnで見てみると「123 45」になる) ---------------------------- 【開発環境】 WinXP Weblogic8.1 JDK1.4.2 Ecripse2

    • ベストアンサー
    • Java
  • フォームで文字化けしてしまって....

    googleで検索しても答えが見つからなかったので、皆様のお力をお貸しいただければと。 携帯サイト用のフォームをつくってみたのですが、文字化けを起こしてしまい、解決法が分からずに困っております。 文字コードをEUCにしてソースも変えると【au】では HTML(フォーム1ページ目の入力画面)も、処理後(入力した内容を確認する画面)も化けてしまいます。 ※docomoとsoftbankはオールクリアでした。 また 文字コードをShift_JISにしソースも変えると HTML(フォーム1ページ目)は3キャリア共化けません。処理後(確認画面)はdocomoとsoftbankで文字化けします。 些細な事でもかまいません。 アドバイスいただけたら幸いです。

  • Javascriptでの表示切り替えについて。

    ただいま一人で勉強中の初心者です ラジオボタンの選択項目を変えたら、ひとつのテキストエリアの入力制限が変わるという処理を作りたいのですが、どのように作ればいいのでしょうか ラジオボタンがA,Bとあるとして、 Aを選択すると半角英数字しか入力できないテキストエリアになる。 Bを選択すると何でも入力できるテキストエリアになる。 ただし、表示されるテキストエリアはひとつのみ。 というものを作りたいです。 行き詰っています。助けてください

  • 特定の携帯による文字化け

    [現象] 携帯電話からJSPで画面(A)を表示をさせ、その画面で入力した文字をサーバ側に返します。 サーバで受け取った文字を利用した画面(B)を携帯で表示させると文字が化けてしまいます。 半角英数字などは正常に表示されるのですが、全角表記の文字は「?」で表示されます。 文字化けしてしまうキャリアはauのみで、docomo、vodafoneは正常に表示できます。 ちなみにIEでも正常に表示できました。 [動作環境] Apache 1.3.26 Tocmat 4.06 java 1.4.1.02 Win2000Sever SP4 サーブレットでは以下のようにShiftJISからUnicodeに変換するメソッドをかましています。 private static String convertString(String s) { if(s == null) { return null; } try { return new String(s.getBytes("8859_1"), "JISAutoDetect"); } catch (UnsupportedEncodingException e) { return s; } } JSP側でも以下のようにShiftJIS対応をしているはずなのですが・・ <%@page contentType="text/html; charset=Shift_JIS"%> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=SHIFT_JIS"> <TITLE>XXXXXXX</TITLE> </HEAD> <BODY> はじめに表示させる画面(A)では全角なども正常に表示できているので、ブラウザ→Tomcatの間で 問題が発生しているのではないかと思うのですが、1日潰しましたが解決できません。 auの携帯はW21CAという機種で比較的新しいものです。 どなたかご教授お願いします。

専門家に質問してみよう