タイトルの通りですが、フォーム検索先の文字コードが自動的にEUC-JPになってしまって困っています。

最終的には、フォームの検索先をUTF-8の文字コードを指定して開きたいです。

UTF-8でphpファイルを作成しました。内容は下記のものです。
(おそらくphpは問題ないと思いますが、一応リンクを載せます)
2つの検索フォームのリーベンシュタイン距離を求める
http://oshiete.goo.ne.jp/qa/7398842.html

上記のPHPにアクセスするように、FC2ブログのプラグイン(HTML編集にて)で、下記のようにフォームアクション先を設置しています。
(仮にここでは2つの検索フォームに名前を入れるものとします)

<form name="formleven" method="post" form action = "http://〇〇.〇〇.jp/php/formleven.php" target="_blank" style="margin:0;padding:0;" onsubmit="return false;" accept-charset="utf-8">
名前1:<input type="text" name="nm"> と
名前2:<input type="text" name="nm2">
   <input type="submit" name="exec" value="検索" onclick="document.charset='utf-8'; document.formleven.submit();" />
</form>

仮に
名前1に「あō å 1g」
名前2に「いš ë ā 」

と入力します。(日本語、アクセント文字、ローマ字などの混合文字でも対応できるように)


本来ならば、『(名前1)と(名前2)は◯%マッチ』と表示されるはずなのですが、


これで検索すると、検索先の別ウィンドウが自動的にEUC-JPの文字コードで読み込まれてしまい、下記のように文字化けします。

��� 奪 鐚�鐔� �� ��邸 谷 � �� 1鐚� ������(6)


ブラウザの文字コードを「UTF-8」に戻すと下記のように正常に表示されます。

あō å 1g と いš ë ā は 1% マッチ(6)


ちなみにローカルサーバーや有料サーバーで実験した際には、勝手にEUC-JPの文字コードが出力先になったりはしませんでした。(もちろんPHPはUTF-8で作成し、EUC-JPは使っていません。)


またフォームの「accept-charset="utf-8"」の部分を抜くと、検索フォームの入力文字は正常に表示される(出力先が勝手にEUC-JPにされるため)のですが、「と」「は」「%マッチ」のUTF-8で書かれたPHPファイルの文字列が文字化けします。


どうやらFC2自体がEUC-JPなようで、FC2のプラグイン(HTML編集)経由でなってしまうようです。

そこでFC2のテンプレートの冒頭のメタ部分を

<?xml version="1.0" encoding="EUC-JP"?>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />



<?xml version="1.0" encoding="UTF-8"?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

と書き換えてもみたのですが、やはり結果は同じように勝手に検索出力先がEUC-JPにされてしまいます。


HTMLフォームのmethod="post"の部分をmethod="get"に書き換えると、出力先は問題なくUTF-8で表示され文字化けは起こらなくなりますが、検索フォームに入力した文字列のリーベンシュタイン距離の計算ができなくなります。数値が全て「0」になってしまいます。
(おそらく出力先はUTF-8なのですが、入力文字がEUC-JPになって文字化けして、PHPへと受け渡されるので計算できないのだと思います。)


これらのことから察するに、FC2プラグイン(HTML)に設置した検索フォームの方(あるいはテンプレート?)に問題があると思うのですが、

<form name="formleven" method="post" form action = "http://〇〇.〇〇.jp/php/formleven.php" target="_blank" style="margin:0;padding:0;" onsubmit="return false;" accept-charset="utf-8">
名前1:<input type="text" name="nm"> と
名前2:<input type="text" name="nm2">
   <input type="submit" name="exec" value="検索" onclick="document.charset='utf-8'; document.formleven.submit();" />
</form>

これをどう修正すればいいでしょうか?


稚拙ながら恐縮ですが、ご存じの方がいらっしゃいましたら、ご指摘・ご教授のほどよろしくお願い申し上げます。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

単純にPHP側で取得したPOSTリクエストをmb_convert_encoding関数を用いてUTF-8に変換してから処理するようにしてみてはどうでしょうか。



入力フォームに問題は見られません。
出力するHTMLにはmetaタグで文字コードを指定してあげるなど、文字化けを防ぐ方法はいろいろあります。

また、そのURLにあるソースを拝見しましたが、処理中にShift-JISに変換しているようですが、UTF-8で書いているのであればこのような変換は無意味ではありませんか?今一度ご確認ください。

この回答への補足

回答ありがとうございます。

なるほど、PHP側で取得したPOSTリクエストをmb_convert_encoding関数を用いてUTF-8に変換してから処理する、出力するHTMLにはmetaタグで文字コードを指定してみる、等の方法があるのですね。

少しやり方がわかりませんが試してみます。

Shift-JISへの変換はPHPのURLの回答者様に同じご指摘を受け、修正して解決しました。

補足日時:2012/04/06 08:37
    • good
    • 0
この回答へのお礼

ありがとうございます!

PHP側のHTMLのヘッドにメタタグ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />を挟み込んだら解決しました!

仰る通りHTMLのフォーム側はこれで問題なかったです。

本当に助かりました!ありがとうございます。

お礼日時:2012/04/06 19:24

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q阿佐ヶ谷姉妹というお笑いコンビを先日見ました。

阿佐ヶ谷姉妹というお笑いコンビを先日見ました。

そのとき、ネタの始まりと終わりで、お辞儀をするときに歌っていたメロディは何のメロディでしょうか?

どこかで聞いたことがあるのは間違いないんですが、思い出せません!

気になって仕方ありません!

Aベストアンサー

ファミリーマートで入店したときにドア上から流されている音楽です。

リンクしていいかわからないので、「ファミリーマート 入店音」で検索して聞いてください。リミックス版は凄いです。

QAptanaでHTMLファイル内のshift_jisやEUC-JPコードを表示できません。

HTMLファイルをAptanaで開くと、shift_jisやEUC_JPなどの日本語文字列が文字化けしてしまいます。
メニューバー等については、Pleiadesを導入することで、日本語化には成功しています。
ところが、ウインドウ→設定→ワークスペース→テキストファイルエンコードの欄で、上記の日本語コードが選択できません。
あるWeb上から得た情報では、この欄の選択リストに載っていないコードでも、手入力すれば、表示できるといったものもありましたが、私の環境では、そうしようとすると、すぐに、「選択されたエンコードはサポートされていません。」といったエラーが出て、できませんでした。
何かインストールし忘れているものがあるのかも知れませんが、現在の自分の頭のレベルでは、手詰まり状態です。どなたか、お知恵を拝借できませんでしょうか?

Aベストアンサー

以前自分でメモしていたものが見つかったので書いておきます。これでいけると思います。

[原因]
charsets.jarが欠けていることが問題。MS932等は拡張エンコーディングセットの扱いのため、 charsets.jarがないとMS932等が扱えない。(昔(Aptana1.0あたり)では入っていた)

[解決方法]
JavaをインストールするとC:\Program Files\Java\jre\lib\にcharsets.jarができるので これをC:\Program Files\Aptana\Aptana Studio\jre\libに入れればOK。

あとは文字エンコードの欄に「EUC_JP」などと手入力してやればいけると思います。

参考URL:http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/intl/encoding.doc.html

Q水泳の授業で着る指定の水着は、どんな水着ですか?

僕の高校の水泳の授業で着る指定の水着は、V字型の競泳水着、いわゆるブーメランパンツです。
女子もハイレグタイプの競泳水着を着ています。

中学の時は、男子はトランクスタイプの水着で、女子もフツーの水着を着ていました。

うちの高校は大してスポーツが盛んではないのに、格好だけ一丁前です。

皆さんの学校の水泳の授業で着る指定の水着は、どんな水着ですか?

Aベストアンサー

いわゆる普通のスクール水着でしたが、水泳部は授業でも競泳用を着用していました。
ただ、高校はきちんとした指定がなかったので、多くの人がサイズさえ合えば中学時代のものをそのまま着用していたので、ラインが入っていたり、女子はハイレグ的な水着の人もいましたが。

Qeuc-jp で文字化け

euc-jp で文字化け
euc-jp で打ち込むと、ブラウザ上では正常に映るのですが、ブラウザからソースを見ると
文字化けしてしまいますし、そういうサイトをよく見ます。これはSEO上影響は
ないのでしょうか? ブラウザはIE7です。

Aベストアンサー

お使いのブラウザは何ですか?
ブラウザによって、ソースを表示する機能を持っているものと、他のプログラム(メモ帳など)を呼び出して表示するものがあります。他のプログラムを呼び出す場合、呼び出されるプログラムがeuc-jpに対応していないと文字化けします。

IEのように、ソースを表示するプログラムを指定できるブラウザであれば、文字コードに対応しているテキストエディタなどを指定するとうまくいきます。

Q水着がイヤでなかったら、今ごろオリンピック選手?

学校の水着ってイヤじゃなかったですか?
水泳が嫌いになった理由は、学校の水着がイヤだったから。
微妙に透け気味だったし、今みたいにスパッツみたいな丈の長いタイプではなかったし、下着なしで着るようになっていたし。男子の三角みたいなのに比べたらいいと思うけど。
水着が自由だったら、カンガン泳いで、今頃オリンピック選手だったかも(ウソ)。
しかも、いろんな体型があるのに、全生徒が同じ水着ってあり得ない。

Q1 学校の水着イヤじゃなかったですか?
Q2 どんな水着でしたか?
Q3 水着が自由だったら授業に積極的に参加してましたか?
Q4 学校で水着が恥ずかしいのに海で水着は恥ずかしくないと思いませんか?

Aベストアンサー

1嫌でした。本当にとても嫌でした。
2女子ですがオリンピック選手が着ているような形の普通の水着でした。
3水着が嫌というより体型が露骨に出てしまうのが嫌でした。なので水着の形が自由でも嫌です。
4海で着られる人って体型に自信がある人なんじゃないかと思います。

QEUC-JPの検索について

HPで検索窓を設置していますが、言語がEUC-JPのため
検索ワードを入れて検索をかけると文字化けしてしまいます。
対処法としてfirefoxを使えば文字化けせずに検索できましたが
IEなどでも検索できるようにするためにはどのようにすればいいでしょうか?
おわかりになる方どうぞよろしくお願い致します。

Aベストアンサー

EUC-JPで検索をかけるというのは全然問題ではなく、むしろ好ましいと思います。で、問題はなんですか?ブラウザは関係ないと思うのですが…

charsetを書くかヘッダで指定すれば済む話では?

Qスクール水着

男性が女性用スクール水着を着てはダメですか?中学生の時に、女性用の水着に興味がありました。女性用の水着が着たくてたまりませんでした。妹が外出の時に、妹のスクール水着を着ました。スクール水着はサイズが良く着れました。鏡を見て、私のスクール水着姿を見て、変だけど女性になった感じです。私は、中学生の時は、時々、スクール水着になりました。男性が女性用スクール水着を着てはダメですか?

Aベストアンサー

僕はスクール水着を常に着用しています
締め付け感が何とも言えないっす
誰が何を着ようと法律的には問題ないです

QShiftJISからEUCへの文字コード変換をしたいです

文字化け回避のためにShiftJISからEUCへ文字コード変換をしてサーバーにアップしなければいけないようなのですが、どういった方法があるのでしょうか。HTMLはDreamWeaver2004MXを使用し書いています。アップは同ソフトかFFFTPを使用しています。

Aベストアンサー

DWMX2004で
「修正」→「ページプロパティ」→「タイトル/エンコーディング」で
デンコーディングを指定して「OK」を押す。

ヘッダにeuc-jpが現れます。

Q男性が女性用スクール水着を着た時の感じ。

私は、中学生の時に女性用スクール水着に興味がありました。水泳の授業の時に、スクール水着姿の女子生徒を見て、私も、スクール水着を着たくてたまりませんでした。自宅で妹のスクール水着があったので、私はスクール水着を着ました。サイズが良く着れました。スクール水着を着た感じでは、女性になった感じです。男性が女性用スクール水着を着た時はどんな事を感じますか?

Aベストアンサー

妹の水着。きちんと洗って返してあげてくださいね。

汚いです。

Q応募フォームの文字化けは文字コードのせい?

今まで、HPに応募フォームを設置していて問題なくメッセージ等が送信されていたのですが、このたびdreamweaverを使うようになって文字コードを変換したところ、応募フォームから送信されるメッセージが文字化けするようになりました。

素人なので原因がわかりません。
HTMLファイルには、<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">とかかれており、以前はShift_JISを使ってました。
ちなみにCGIファイルにはprint "content=\"text/html; charset=x-sjis\">\n";という文字列があります。

どこをどうすればよいのでしょうか?

なお、CSS外部ファイルの先頭には
@charset "utf-8";
/* CSS Document */
といった文字列があります。

アドバイスいただけると助かります。

今まで、HPに応募フォームを設置していて問題なくメッセージ等が送信されていたのですが、このたびdreamweaverを使うようになって文字コードを変換したところ、応募フォームから送信されるメッセージが文字化けするようになりました。

素人なので原因がわかりません。
HTMLファイルには、<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">とかかれ...続きを読む

Aベストアンサー

> @WEBソフトを買い換えてサンプル画面を利用した改造を行ったため、文字コードは自ら変えたわけではありません^^;

…そうですか。最近はUTF-8で書かれたコンテンツが多いので、オーサリング・ツールのテンプレートのディフォルトがUTF-8になっているのが主流なのかもしれませんけど(Dreamweaverをオーサリングのメインのツールとしては使用していないので推測)、静的なHTMLコンテンツのみであれば一括して文字コードを変換してしまってもあまり支障はないと思いますが、CGIやPHP等のサーバサイド・スクリプトを併用している場合には、それらの文字コード関連の処理との兼ね合いがありますから、そこの理屈もわからないまま安易にテンプレートまかせにしてはいけません。クライアント側に与える不利益は、レイアウトが多少崩れている事などよりも文字化けしている事の方がずっと大きいのですから。

CGI側がShift_JISで処理(HTML側の文字コードがShift_JISの状態で支障なくデータの送受信ができていたのならそう考えるのが自然です)していてそちらを改変する知識を持っていないのであれば、新しいテンプレートを使用してリニューアルするのであってもHTML側の文字コードはそのままにしておくべきです。いくらテンプレートでも主な文字コードや改行コードの指定ぐらい任意に選べると思いますので、。フリーのHTMLエディタだってそれぐらいの機能は兼ね備えているのが当たり前ですから、ましてDreamweaverというプロ用のオーサリング・ツールでも最もシェアの多い製品でそれができないなんて事は有り得ないと思いますし…。

それから、HTML(もしくはCSS)内での文字コードの宣言を書き変える事とファイル自体のエンコーディングを変更する事はまた別ものですが、そこは理解されていらっしゃるでしょうか?ある程度の機能がついたテキスト・エディタであれば、「ファイルの読み込み/保存時の文字コード」が選択できる様になっているので、ユーザはそこで適切な形式を選んでファイルを開いたり保存したりします。こんな当たり前の質問をするのは失礼かとも思ったのですが、

> その後、HTMLファイルの文字コードを元のShit_JISに変換しなおしてみたところ、別の問題が発生した可能性もありますがレイアウト崩れやら文字化けやら起こしてしまい、再度utf-8に戻しました^^;

…という箇所を読むと、もしかして文字コードの宣言だけ(Shift_JISに)戻してファイルのエンコーディングはそのまま(UTF-8)、なんて事をしていたりするのでは…?と一抹の不安を覚えたので。そんなことわかっとるわい、という事であればご容赦下さい。

> CGIファイルのコードを単純に「x-jis」⇒「utf-8」と書き換えてみたんですが、やはり治らず。。

CGIファイルの詳細がわからないので断言はしませんが、文字コード関連の処理はその一行だけで済む様なものではないと思われますので、知識がないならCGIファイルは触らない方が賢明です。エスケープ処理一つ間違うだけで即Internal Server Errorと表示されたりしますので…

> 結局知識がないままいじってるのでこうなるのですね。
> レイアウト崩れなどは治ったので、再度Shit_JISに変換してテストしてみたいと思います。

そうされるのが宜しいでしょう。別スレッドの質問に対しても類似の指摘がありましたが、CSSもHTMLも系統立てて理屈を習得しない内はあまり大胆な事をされるべきではありません。オーサリング・ツールは理屈がわからなくても「それっぽい」ものが何となくできてしまうでしょうが、所詮理屈がわかっていなければ、正しく応用をする術も身に付かず/何かトラブルが起こった時にその原因を突き詰めることもできない、という状態に陥りがちですから。

> @WEBソフトを買い換えてサンプル画面を利用した改造を行ったため、文字コードは自ら変えたわけではありません^^;

…そうですか。最近はUTF-8で書かれたコンテンツが多いので、オーサリング・ツールのテンプレートのディフォルトがUTF-8になっているのが主流なのかもしれませんけど(Dreamweaverをオーサリングのメインのツールとしては使用していないので推測)、静的なHTMLコンテンツのみであれば一括して文字コードを変換してしまってもあまり支障はないと思いますが、CGIやPHP等のサーバサイド・スクリプ...続きを読む


人気Q&Aランキング