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

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

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

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

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

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に関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&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中国語を入力したいのですが、どのようにしたら良いのでしょうか?

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

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

Aベストアンサー

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

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

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

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日本語と外国語(中国語)混在のホームページを作るには?

中国語と日本語の混在のホームページを作りたいのですが、ホームページビルダーでは中国語のフォントが使えません。
 某、混在のページのソースを見てみたら、
<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フォーム検索先の文字コードが自動的に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ランキング

おすすめ情報