人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

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

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

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

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

●質問者: zachouR
●カテゴリ:コンピュータ インターネット
✍キーワード:アプリ データベース プログラム ユニコード 携帯
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●50ポイント

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 等で表示できるかどうか確認してみてはいかがでしょうか?

◎質問者からの返答

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

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

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

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

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


2 ● tobeoscontinue
●50ポイント

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

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

そうであれば絵文字(ユニコード)と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()するようにしないとダメではないでしょうか。

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

◎質問者からの返答

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

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

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ