iアプリ、絵文字出力についての質問です。


何度も質問してすいません。

javaサーフレットを利用して、データベースに入れておいた絵文字(ユニコード)を引っ張り出して、携帯上でのアプリで出力するプログラムを作っています。

しかし、絵文字の部分がどうしても絵文字になりません。

教えて頂いたのですが、どうしても解決しないのです(;;)

受け渡しの部分がおかしいと思うのですが、どなたかわかる方はいらっしゃいますでしょうか?

http://kirin.chu.jp/java_data.html アプリ側
http://kirin.chu.jp/java_data2.html サーフレット側

どなたか、救いの手をさらにお願い致します、、、m(_ _)m

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/11/15 20:15:54
  • 終了:2006/11/16 15:25:29

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/11/15 20:48:45

ポイント50pt

http://www.ingrid.org/java/i18n/encoding/shift_jis.html

とりあえず、Windows-31J と SJIS の違いを認識してください。


あと、DBの情報がまったくありませんが、iアプリ以外の環境では表示されるんでしょうか?

http://www.nttdocomo.co.jp/service/imode/make/content/pictograph...

こういうソフトを使えば Windows 上でも絵文字は表示できるので、まずは IE 等で表示できるかどうか確認してみてはいかがでしょうか?

id:zachouR

b-windさん、毎度毎度すいません。

MySQL、MyAdmin上では絵文字は出力されず、「¥uE734」と表示されてしまいます。

====================================

解決しました、試しにコードを考えず、そのままのものをそのまま返したら、きちんと表示してくれました。

原因はいま、調べています。ありがとうございました。説明が下手ですいませんでした。

2006/11/16 15:23:50
id:tobeoscontinue No.2

tobeoscontinue回答回数214ベストアンサー獲得回数542006/11/16 14:30:39

ポイント50pt

>しかし、絵文字の部分がどうしても絵文字になりません。

絵文字以外の部分(漢字、ひら仮名、カタ仮名など)は希望するとおり表示されているのでしょうか。

そうであれば絵文字(ユニコード)とShift_JISとの対応関係が希望するようになっているか確認する必要があると思います。


Shift_JISの場合、絵文字などは各社、勝手に(は言い過ぎでした)にやっているように思う(見える)ので思い込みは危険だと思います。

それとユニコードの方が文字数は多いのでShift_JISに対応していない文字もあるように思います(未確認)

確認方法:正しいShift_JISのコードを直接、アプリ側でSystem.out.println()して絵文字が表示されることを確認する。

絵文字以外の部分も正しく表示されないのであれば、コード変換の部分を順に追っていくのが急がば回れだと思います。


まずサーブレット側のstrTxtです。これはDBからの結果だと思うのですが

http://www.mars.dti.ne.jp/~torao/program/appendix/japanese.html]では

『JDBC を使用して読み出したデータフィールド文字はすべて "8859_1" として変換されている事に注意してください。』とありますので

まずstrTxtに正しくコードが設定されているか確認して下さい。


アプリ側で気になるのはnew InputStreamReader(wi_stream);です。

これだとデフォルトの文字セットを使うことになってしまい、wi_buffer.read()で受け取っている値が何なのか不安です。

バイトで受け取っている場合、w_StringBuffer.append((char)w_char)では正しく文字が追加されないと思います(byte->unicode)。

Shift_JISで受け取ってappend()するようにしないとダメではないでしょうか。

絵文字以外の部分も正しく表示されているのであれば、これは私の間違いです。

id:zachouR

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

実際に書き込まれた絵文字はPHP上で変換!\uE734などに返信し、DB内に格納されます。

そして、アプリがサーブレットに要求してそのまま表示!となるのですが、絵文字になるはずの部分が\uE734の文字のままで、その他の文字は間違いなく正しく表示するのです。確認方法はすでに試しましたが、同じ状態で表示されます。

、、、ううう、、、ネット上にもあんまりヒントがないし、今回のつまづきはかなり手強そうです。

==================

無事、解決しました、いろいろと助言ありがとうございました。よかったです!ハァ、、、(^^)

2006/11/16 15:24:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません