中国語入力可のWEBフォームに入力された文字列を
日本語フォントで示せる独自の管理コードに置き換えたいのですが

(1)中国語入力を受け付ける入力フォームをつくるには?
(2)入力された中国フォントで書かれた文字を日本語フォント
 で示せる管理コードに置換え。

(2)もしくは(1)もPHP等のサーバサイドプログラムを使うのかもしれ
ませんが上記プロセスしか思いつきません。
実現するための、やり方や手掛かりになる情報をご存知の方
ご教授意ただけませんでしょうか?

例、
?好←この中国語フォントで書かれた中国漢字を、
↓↓
中国語挨拶1←このように、日本語の管理コードに書き換えます。

A 回答 (5件)

ニーハオについて。


このQ&Aシステムは複数のサイトから同じ物が見られますが、サイトによって文字の扱いに違いがあります。
さらにブラウザによっても表示が変わりますので面倒なことになります。

この質問のNo7-8の私の回答に表示状況の画像があります。
http://oshiete1.goo.ne.jp/qa4537642.html
これを見て分かるように、教えて!gooをFirefoxで見ると正しく文字が見えます。
    • good
    • 0
この回答へのお礼

度々恐れ入ります。
まさしく、教えて!gooをFirefoxの組み合わせです。
やはり、ブラウザやサーバ側の事情も関係してくるのですね。
色々教えて頂きありがとうございます。
現時点では、何から初めてよいか解らず混乱してますが
一つずつ何がどのように影響するのか等整理しながら調べてみます。

お礼日時:2009/09/13 02:40
このページのHTMLソースをテキストで見ると、確かに「好」の直前に \x00 (、つまり NUL 文字) が混入していますね。

No.3さんは、なぜそれが「ニー」の文字だと思うのですか?

質問者さん、そのとおりなのですか?
    • good
    • 0
この回答へのお礼

No.3様、No.1様回答ありがとうございます。
"ニーハオ"でございます。
Firefox3で表示すると中国語書体で正しく表示されるようなのですが
ご指摘から推測するとブラウザの問題も関係してくるようですね。
当方のPCには中国語フォントを入れていますがIMEでは日本語
設定になっているのでブラウザ側の表示設定と言う可能性を考えました。
このような、机上では気づかない実際にやってみないと解らない部分での
問題があるのではと思い質問させて頂いた理由もありました。

利用目的からは、単純に
「〇△■」と入力されたら→「001」と言う予め決められたコードに
変換すると言う事で良いのですが。
「0001~1000」番までの、コードに置換えする事がしたいのです。
「〇△■」の部分が単に、中国語漢字になるという事なのですが。

入力される単語は予め全て登録したものでよかったのですが、
説明不足で、何度もお手数掛けて申しわけありません。

お礼日時:2009/09/09 00:14

まず、質問に中国語の漢字を使っているようですが、環境によって全く表示されませんので避けた方が良いです。


(No1,2さんへ:「好」に見えるものは「ニーハオ」が書かれています)

思うに、日本語の文字でない部分のみを文字コードか何かに置きかえればよいのではないでしょうか。
例えばHTMLの文字参照で置きかえれば、ニーハオは「你好」になります。

なお、フォントを気にされる理由がよく分かりません。
サーバにフォントがなくても文字列処理は当然できますし、そもそもサーバにフォントを置くのに手間もコストも要らないでしょう。処理結果を使う目的のためかとも思いますが、何に使うのか書かれておらず分かりません。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございました。
>サーバにフォントを置くのに手間もコストも要らないでしょう
この部分なのですが、広告付きなどの無料もしくは、安価なレンタル
サーバを使いたいと思っています。
そうしたサーバでは、HTMLファイルやCGI以外のファイル
を置く事も詳細な設定を変更する事も出来ないと認識していますが
その範囲でフォントを入れる事は出来ないと考えておりました。

しかし、回答から推測するとサーバ側のフォントの問題は気にしなくて
良いのですね。
ブラウザの文字セットの問題と考えてよいのですね。
間違っていたらご指摘頂ければ、幸いです。
>処理結果を使う目的
処理後に変換された独自のコードは、中国語は全く関係ありません。

質問を出した時はイメージしやすいかと思い「中国語挨拶1」など
と適当に書きましたが、全て1~1000番までの数字に入力された中国
単語を置き換えるだけです。

お礼日時:2009/09/09 00:26

No.1 です。



実現に向けて話を詰めようとされている心意気を感じますが、やはり目的と状況に依存する部分が多いので明快な回答はできないですね。 いずれも、普通は、経験を積んだ技術者が諸般の事情を考慮して決定する問題です。


> 置換えするのは、単語ばかりで、1000語程度です。

普通はサーバー側で処理すべきオーダーだと思いますが、サーバーが非力だとか、使うのは内輪の人間だけだから遅くても我慢できるとかの事情があれば、クライアント(閲覧者が使うPC)のCPUを使う JavaScript も選択肢かも知れません。


> 入力部分は相手のPC中国語にフォントがあるかどうか

コピペで無く手入力するなら、「中国語IME」とかその類のものも必要かと思います。


> サーバー側にフォントを用意する必要は無い。

多分可能でしょうが、不利な局面が発生するかどうかは状況によるでしょう。


> あとはUTF-8で入力されたコードをサーバ側で置換えすると言う事でよいのですね。

目的によります。

目的が「Web漢和辞典」なら置換は不要で、入力語に対応する「辞書の本文」を別の場所に表示するだけですよね。

目的が「自動中日半翻訳」であれば、置換の前段階の「単語区切り処理」が必要でしょう。 「好」は、常に「中国語挨拶1」で良いのですか? 「好」を含む単語は無いのですか? 「中日友好」とか。
    • good
    • 0
この回答へのお礼

>「好」常に「中国語挨拶1」で良いのですか?
後述してますが、環境の問題で正しく表示できてませんでした。
単語は予め決められた1000語と決まってますので、
それ以外の単語が入力される事はありませんし単語を分解して解析
等も全く必要ありません。
お手数掛けまして、申しわけありませんでした。

お礼日時:2009/09/09 00:33

まず、文字コードに UTF-8 を使いましょう。

UTF-8 は日本語に必要な文字も中国語に必要な文字も持っているので、コード変換とか「中国語入力用のフォーム」とかを考える必要が無くなります。

「好」⇒「中国語挨拶1」 は、文字列置換ですね。 HTMLだけでは無理で、CGI とかのサーバーサイド処理で実現するのが普通と思います。

「好」の様な置換対象語の種類数が数十とかそれ以下なら JavaScriptでもできます。

つまり、何が作りたいか、何が要求されるかによって、適切な手法は千差万別です。 ほとんどの手法で、それなりの技術力が要求されると思います。 どうしたら良いか見当も付かない人には難しいかも。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
置換えするのは、単語ばかりで、1000語程度です。
入力部分は相手のPC中国語にフォントがあるかどうか
サーバー側にフォントを用意する必要は無い。
あとはUTF-8で入力されたコードをサーバ側で置換えすると
言う事でよいのですね。

お礼日時:2009/09/07 21:35

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

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

Q中国語でお正月のあいさつ。

謹賀新年
新年
あけましておめでとうございます
うさぎ年(中国にも干支のようなものがあれば中国語でお願いします)
今年もよろしくお願いします。


これを中国語ではなんと書くのでしょうか?

中国は正月が違うみたいなので、1月にあいさつはどのようなものがあるのでしょうか?


自分でググったりしたレベルでは


「新年好
万事如意、全家平安」
「卯」

程度の文章しかわかりません。

なにかあいさつ文があれば教えてください。

Aベストアンサー

謹賀新年
谨贺新春

新年,あけましておめでとうございます
恭贺新禧
(基本的に、この二つのことは中国語では似たような表現になります。)

うさぎ年
卯年(「兔年」の方がよく使われます)

今年もよろしくお願いします。
今年还要请您多多关照

Qフォーム入力で入力された文字に.htmlを付加してそのページがあればリンクさせたい

単純に検索フォームに文字を入力させるとします。

例えば、「aaa」と入力なら、「aaa」に「.html」を付加させて、
aaa.htmlというページがあれば、aaa.htmlというページに移動するものを作りたいと思っています。

かなりのページ数になることが予想されるのですが、当面はデータベースを使わずに、上記のような単純な検索フォームで行きたいと思っています。

お分かりになる方がいらっしゃいましたらお教えいただけると嬉しいです。

Aベストアンサー

「JavaScript パスワード」で検索すれば見つかりますよ。

http://www.yuzuriha.sakura.ne.jp/~akikan/kaigai/kaigai16.html
http://kan-chan.stbbs.net/download/html/password.html

Q中国語、タイ語、ポルトガル語のあいさつは?

私の勤めている会社にはかなりの頻度で海外の研修生がやってきます。皆さん日本語で挨拶をしてくれるのですが、せっかく勉強してきてくれるのに私から挨拶ができないのは情けないと思いそれぞれの国の言葉で挨拶程度はできないといけないなと思うようになりました。色々な翻訳サイトを検索し、発音まで聞いてみたのですが、本当にそれが失礼のない言葉か?あっているか??心配です....。そこで

中国語、ポルトガル語、タイ語

それぞれ

○おはよう(こんにちは)

○お疲れ様でした!(またね!)

を教えて下さい。ちなみに私は派遣社員で海外の方は正社員という立場です。失礼のない言い方かつ、あまり堅苦しくない言葉で挨拶できたらと考えています。また、ちょっと言ったら面白いというか場が和むような言葉があればそれも教えて下さい。兎に角何かコミュニケーションがとりたいです。

すみませんが皆さん教えて下さい。
宜しくお願いします。

Aベストアンサー

中国語について回答させて頂きます。

●おはよう→早上好(zao shang hao)!(おはようございます)
    →早(zao)!(おはよう!)

●こんにちは→イ尓好(ni hao)! ※目上の人には「您好!(nin hao!)」
 ※厳密には日本語の「こんにちは」とは若干ニュアンスが違いますが、質問者様が中国語が全く話せないのであれば、「イ尓好!(您好!)」で問題はありません。
 ※ただ、目上の人には必ず「您好!(nin hao!)」を使いましょう。発音の違いは微々たるものですが、万一「イ尓好(ni hao)!」を使うと失礼に当たります。
 ※なお、類語で「下午好(xia wu hao)」というのもあり良く教科書などにも載っていますが、中国人で実際に言っている人を見たことはありません。

他に、「こんにちは」的な言い回しで「吃飯了嗎?(chi fan le ma? もう食事は済みましたか?)」や「怎me様?(zen me yang? 調子はどうですか?」みたいなものもあります。

「吃飯了嗎?」はわりとフランクな表現ですが、そこまで大きく立場が変わらなければ、相手が目上であっても特に失礼な印象はありません。私は社長相手でも、気軽に話せる方なら普通に使っていました。それにもっとも中国ネイティブらしい表現かと思いますので、言えれば喜ばれると思います。


●お疲れさまでした→辛苦了(xin ku le)
 
 ※類似表現→先走了(xian zou le)お先に失礼します。先になります。

●またね!→再見!(zai jian!)さようなら!またね!※明日も会うのであれば、やや不自然。
    ※明日も会うなら→明天見!(ming tian jian!) また明日!
    ※来週会うなら→下周見!(xia zhou jian!) また来週! の方が自然。


発音は敢えてすべてピンイン(ローマ字)で書きました。
中国語は発音がかなり繊細なので、カタカナ表記にしてたとえば「ザオシャンハオ」などとして発音しても、まず通じません。

ネットの辞書などで発音が聞けると思うので、なるべく先入観なしで聞いたままを再現するようにして発音してみてください。

もしやる気があるなら、スマホなどで自分の発音を録音して聞いてみることをお勧めします。それを聞いてみて、見本の発音と同じようになっていれば、きっと聞き取ってもらえると思いますよ。


他にビジネスというシチュエーションで場がなごみそうな表現で思い浮かぶものは、

●我「彳艮」困(wo hen kun)→眠い
 ※「彳艮」という字が出てこなかったので二字で表現しました。

●餓死我了(e si wo le)→めっちゃお腹空いた~

●圧力「彳艮」大(ya li hen da)→ストレス溜まりますね



コミュニケーションを積極的に取ろうという姿勢にとても好感が持てました。
良い人間関係が築けるといいですね。

中国語について回答させて頂きます。

●おはよう→早上好(zao shang hao)!(おはようございます)
    →早(zao)!(おはよう!)

●こんにちは→イ尓好(ni hao)! ※目上の人には「您好!(nin hao!)」
 ※厳密には日本語の「こんにちは」とは若干ニュアンスが違いますが、質問者様が中国語が全く話せないのであれば、「イ尓好!(您好!)」で問題はありません。
 ※ただ、目上の人には必ず「您好!(nin hao!)」を使いましょう。発音の違いは微々たるものですが、万一「イ尓好(ni hao)!」を使うと失礼に当...続きを読む

Q中国語を入力したいのですが、どのようにしたら良いのでしょうか?

中国語を入力したいのですが、どのようにしたら良いのでしょうか?

ドリームウェーバーCS5を使用しています。文章とかに日本語の文字入力ですと、通常はMSPゴシックやヒラキノ角ゴなどがあり、それをフォント指定すれば、たいがいのパソコンで文字化けせずに入力された文字を読む事ができますが、それと同様に、中国語の文字入力し、文字化けしないようにしたいのですが、その場合、どのようにフォントの指定をすれば良いのでしょうか。解る方がいましたら教えてください。よろしくお願い致します。

Aベストアンサー

METAタグで中国語(人民共和国なら簡体字、台湾なら繁体字)を指定しなくてはいけません。
http://kan-chan.stbbs.net/pc/chinese.html

ただ、日本語メインで一部中国語なページを作りたいのなら、中国語部分を画像にしてしまったほうが楽ですし、文字化けの恐れがありません。

こんなツールを見つけました。
http://dokochina.com/chinapage.htm
こちらのほうが楽かもしれませんね。

Q中国語とタイ語で教えて下さい

披露宴の席次表に、その国のお客様がいらっしゃるので、日本語のほかに中国語・タイ語でごあいさつを載せたいと思っています。
以下の文章の中国語・タイ語で教えて下さい。

「本日はお忙しい中お越し下さり、ありがとうございます。
一生の記念となるこの日を皆様と過ごすことができますこと、心から感謝いたします。」

中国語では少し情報を仕入れましたが、文字化けしてしまい、合っているのかここでお伝えできません(本日请忙强迫中去,谢谢。能与大家度过成为一生的纪念的这天的事,衷心感谢。)
よろしくお願い致します。

Aベストアンサー

「喜筵」とは、「喜びの催しの宴会(場)」のことを言います。
簡単に言うと、祝宴(会場)のことですね。
そして比喩的に、「(いろいろな)祝宴」や、「結婚披露宴」と「結婚披露宴会場」を指します。とくに、特に特に特に「結婚披露宴」「結婚披露宴会場」のことを言うときに用いる慣用句です。したがって中国系の方が「喜筵」の字句だけを目にしても、通常は「結婚披露宴」を即座に連想します。そのくらい慣用的になっております。

「酒席」は「お酒の席」=普通はお目出度い催しの席ですよね。
ですから、「喜筵酒席」とすると、同義語が二つになってしまいます。
そこで私は「結婚酒席」の部分を「喜筵」と置き換えたほうが中国の習慣に適っていて、かつ簡潔でしまりの有る文面になりますよ とお勧めしたわけです。
-----
>「皆様」ではなく「あなた(=一人に言う時)」では「各位」が変わってくるのでしょうか?
変わりますよ。
*非常感謝大家百忙中来参加我men2的結婚酒席。能与各位度過有記念意義的這一天,我men2表示衷心的感謝。
上記の意訳翻訳は;
「本日はお忙しい中お越し下さり、ありがとうございます。一生の記念となるこの日を皆様と過ごすことができますこと、心から感謝いたします。」
のように、「皆様」と表現しているので「各位」となっています。これは複数の会席者に対して述べる文面ですね。

では「あなた(=一人に言う時)」の場合はどうなるでしょうか・・・以下をご覧ください;
*非常感謝大家百忙中来参加我men2的結婚酒席。能与nin2(またはni3)度過有記念意義的這一天,我men2表示衷心的感謝。・・・となります。

「nin」「ni」これら二つの文字はこのサイトでは電脳上で文字化けします。しかし中国語ではなくてはならない重要な意味がある文字です。手書きか以下の手順で電脳上で再現してみてください。

「nin」:あなた、の丁寧語・尊敬語です。こちらをお勧め。「人偏に尓を書いてその下に心」 で一字になります。「ni」よりも気持ち更に心がこもっている感じがしますね。「あなた」「ニン」で出ると思います。
「ni」:あなた、の常用語。「人偏に尓」 で一字になります。「なんじ」「ジ」で出ると思います。尤も中國南方方面では「ni」で全てを表していますが。

是でいかがでしょうか?(^^♪。
タイ語はこのサイトでは再現できないと思います(不明)。ABC文字やカタカナで表現する手も有りますが、これだとおそらくタイ人は意味を認識できないんではないかと思います。

「喜筵」とは、「喜びの催しの宴会(場)」のことを言います。
簡単に言うと、祝宴(会場)のことですね。
そして比喩的に、「(いろいろな)祝宴」や、「結婚披露宴」と「結婚披露宴会場」を指します。とくに、特に特に特に「結婚披露宴」「結婚披露宴会場」のことを言うときに用いる慣用句です。したがって中国系の方が「喜筵」の字句だけを目にしても、通常は「結婚披露宴」を即座に連想します。そのくらい慣用的になっております。

「酒席」は「お酒の席」=普通はお目出度い催しの席ですよね。
ですか...続きを読む

Qブラウザで日本語・中国語・韓国語、多言語同時表示するには?

Windows95でNetscape4.xを使っています。

ある検索サイトの翻訳サービス、Infoseek翻訳で、日中、日韓、の翻訳をしてみると、翻訳結果が???????と出ました。
そのサービスは、Windows95以上、Netscape4.x以上が動作環境としてあるのですが、うまく機能していないようなのです。
フォントをインストールする必要があるのでしょうか?
とすれば、中国語や韓国語フォントはどこからとってくればよいのでしょうか?
Netscapeのサイトにも見あたらず、困っています。

それと、この機能があるということは、Netscape4.x上で、JavaScriptかHTMLかを使って、多言語同時表示ができるということなのでしょうか?
テキストエリア内でしか表示できないのでしょうか。
それとも、HTML本文に混在表示できるのでしょうか。
できるとしたら、そのやり方を教えてくださいませ。

Aベストアンサー

>フォントが見つからないのですが。

Microsoft Global IMEをダウンロードするときに

with LangagePackと書いてあるのがFONT付きのもの
です。書いてないのはIME(文字を入力するアプリ)
のみのものです。

http://www.microsoft.com/windows/ie_intl/ja/download/ime5_win32/default.mspx

Q彼ら(中国語)でなんと言ってたのでしょうか?

某巨大電気量販店に勤めています。
最近、同僚がちょっとした事から中国人の団体旅行客らしい人達と
トラブルになってしまい(原因はどうも、中途半端なレベルの日本語しか喋れない
通訳役をやっていた人の説明の勘違いらしかった)、かなり揉めて怒ってしまっていました。

それはそれで仕方がなかったとして、ちょっとだけ気になったのは、彼らが
しきりに「ツァオッ!」(中国語の出来ない我々にはこう聞こえる)と言っていたのです。これはやはり「この野郎!」とか「馬鹿!」と同義語なんでしょうか・・

知らないでいていい事もあるとは思うのですが、やっぱり気になります。私は知りたいです!ちなみに中国語は最近あいさつ程度だけでも勉強した方がいいのかな・・・と思わざるを得ないくらいに、中国の方との接客が本当に多くなったと思う、今日この頃です。

Aベストアンサー

再登場larryまたしゃしゃり出てきました。

>感謝の意を込めて初めて「謝謝」(シェーシェー)って言ってみたんです。

中国語は声調というのがあって、これがカナでかいてある
とおりに言っても通じない大きな原因になっています。
cao1とかcao4とかの最後の数字が声調です。
「橋」と「箸」が同じハシでも異なるように
声調が違うと違う字になるんです。

ありがとうの「謝謝」ですが
「しめしめ、うまくいった」の「しめしめ」を
「め」を「え」にかえて「しえしえ」
という感じです。これが声調4声です。

「おそ松君のイヤミ」の「シェー」より
「シ」と「エ」をはっきりさせて「シエ」
と言ってくださいね。

では、がんばってください。

Q日本語と外国語(中国語)混在のホームページを作るには?

中国語と日本語の混在のホームページを作りたいのですが、ホームページビルダーでは中国語のフォントが使えません。
 某、混在のページのソースを見てみたら、
<td width="14%" height="30" align="center">
<font face="SimSun"><span lang="zh-cn">开</span></font></td>
<td width="20%" height="32">車、自動車</td>
<td width="20%" height="32"><span lang="zh-cn">
<font face="SimSun">车</font></span></td>
<td width="46%" height="32"><span lang="zh-cn">

<font face="SimSun">chē</font></span></td>

と、いちいち切り替えていました。しかし中国語の文字はコード表示です。実際手作業ではやっていられませんから、これが自在にできる方法、ソフトはないでしょうか。

中国語と日本語の混在のホームページを作りたいのですが、ホームページビルダーでは中国語のフォントが使えません。
 某、混在のページのソースを見てみたら、
<td width="14%" height="30" align="center">
<font face="SimSun"><span lang="zh-cn">开</span></font></td>
<td width="20%" height="32">車、自動車</td>
<td width="20%" height="32"><span lang="zh-cn">
<font face="SimSun">车</font></span></td>
...続きを読む

Aベストアンサー

こんばんは

私はメモ帳でhtmlを書いているので、ホームページビルダーやそういった類のアプリケーションの仕様は解りませんが、Unicode (UTF-8)でhtmlを作れば良いと思います。
となると、Unicodeをサポートしたエディタとかが用意できれば良いのではないでしょうか。

Q中国語

中国語を勉強しています。
今のやりかたは、中国語文章の単語を
中国語から日本語  日本語から中国語に書けるようにする。
文章を中国語から日本語  日本語から中国語に書けるようにする。
読めるようにする。という感じです。
問題はピンインなのですが、中国人の方もしくは
中国語を話せる人は漢字を見てピンインを書くことができるのでしょうか。
ピンインを覚えて書けるようにならないといけないのでしょうか。

Aベストアンサー

中国人は、地域により教育に少し違いがある?らしく、中国人でも
ピンインを書けない人は、時々います。彼らは、耳から覚えているので
書けなくても良いようです。しかし、高等教育を受けている人は
ほとんど書けます。しかし、中国人にとって中国語は、"普通
話(プートンファ)"と言い、日本人のいう中国語を使う地域(北京)の
人以外、ほとんどの人にとって、自分たちの言葉ではありません。
3時間も電車に乗れば言葉が変わる位方言が多いのです。
普通は小学校から普通話を習っているようです。小学生のノート
などでは、漢字を書き、その上にピンインを書いて覚えています。
中国人で方言を話す人も、普通話(中国語)を話せるようになります。
日本人にとって、中国語の発音は、習得が難しいので、正確な発音が
出来るようになるためには、絶対ピンインの習得は不可欠です。
日本人には、"し"、"えん"でも、中国人から見れば、xiとshi,enとeng
を区別して話しています。中国に行っても自然に中国語を覚えるのは
時間がかかります。まずは、ピンインからです。

Qフォーム検索先の文字コードが自動的にEUC-JPに

タイトルの通りですが、フォーム検索先の文字コードが自動的に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>

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


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

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

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

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

上記のPHPにアクセスするように、FC2ブログのプラグイン(HTML編集にて)で、下記のようにフォームアクシ...続きを読む

Aベストアンサー

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

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

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


このカテゴリの人気Q&Aランキング