CLDC+MIDP+携帯電話用Javaスレッド part 2
■ このスレッドは過去ログ倉庫に格納されています
0001誰
NGNG質問でも議論でも何でもこい、と。
前スレ:
携帯JAVAのスレッド
http://pc2.2ch.net/test/read.cgi/tech/1011977260/
--
Java一般に関しては:
【初心者】Java質問・相談スレ37【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1070159693/
NTT DoCoMoのiモード携帯電話用Java(iアプリ)については:
iモード携帯電話用Java(iアプリ) Part 4
http://pc2.2ch.net/test/read.cgi/tech/1067139509/
>>2あたりにリンク集
0153145
NGNGコンパイルでエラーでちゃうんですよ。
getWidth()がintとサイズ違うんだかなんなんだかわかりませんけども・・・
画面サイズで表示サイズ指定したかったんですが、できないのかなぁ・・・
0154150
NGNGバージョン違ったらダメだろ。普通。
エミュと言ってるのは、WirelessToolkitのエミュのことか?
であれば、ボダの拡張APIのクラスファイルがないから動かないのは当然。
ボダ用のエミュレータなら、MIDP2.0のAPI使ってないか、確認しろ。
>>153
せめて、コンパイルエラーの文言ぐらい書いてくれ。
0155デフォルトの名無しさん
NGNGVアプリのエミュレーターを使って動作確認を
しているのですが、このP5型では無いエミュレーターでも
100k~256kのjarファイルを動作させることはできるのでしょうか?
おしえてエロイ人
0156デフォルトの名無しさん
NGNGJSCL1.2.1のAPIを使っていなければ
サイズのみ100〜200kのjarは可能
256kでは無いので注意
残りはレコードストアね
0157デフォルトの名無しさん
NGNG即レスありがとうです!
動作確認は取れるということですね。
jarが200kまでとは・・。もう一回仕様書読んできます。
ほんとにありがとうでした(^。^
0158142
NGNGapiは1.0の範囲で収まってると自信をもって言えます。
でも念のため今はWTK104でやってます。でも状況は変わってないです。
ちなみに圧縮方法変えてみたりしてみましたが。やはりNo such method getWidth.()I が。
あ、ちなみにエミュはvodafoneのj-sky application emulatorで、
WTK付属のエミュでやってみると
ALERT: Unable to load class com/jblend/media/MediaPlayerListener
です。ま、こっちは当然ですが。
vodafoneの拡張API使ったアプリを作っていらっしゃる皆々様はコンパイルのときいちいちコマンドプロンプト使ってるんですか?
まさか・・・ね。
0159142
NGNGmidpapiのjavax/microeditionにstubclassesのjavax/microeditionを
上書きして圧縮したらできました。
結局プログラムとは試行錯誤なんだなぁ、と。(違)
>>150,>>156両氏、レス感謝です。
0160デフォルトの名無しさん
NGNGコマンドプロンプトだけど何か?
つーか、普段使っているSolarisもコマンドプロンプトみたいなもんだから
違和感ないんだよね
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG描く→消す→描く→消すを繰り返す。
0163デフォルトの名無しさん
NGNGLoading JAD:
cannot run: helloworld
java.lang.ClassNotFoundException
Exception.........: e5f0560 'java/lang/ClassNotFoundException'
Application EMERGENCY termination. (-1)
0164163
NGNG0165デフォルトの名無しさん
NGNG「ClassNotFoundException」でググれば即解決。
0166163
NGNGありがとうございます。早速調べましたが私初心者なものでいまいちよく分かりません(**)
差し支えなければどういう意味か教えてはいただけませんか?
0167デフォルトの名無しさん
NGNG「クラスが見つからない例外」
・・・これで意味がわからなければ、Javaを基礎から勉強してみた方がいいかも。
0168デフォルトの名無しさん
NGNGどうすればよい?
普通に待ち受けアプリを作ってみたら、着信通知でもメールが
来たことになってしまった
エミュレータにもそれらしいイベントないし。。。。
普通のSKYメールと着信通知は、何を見分ければよいか
教えてプリーズ!>JAVAのエロイ人
0169デフォルトの名無しさん
NGNGMailListener
0170デフォルトの名無しさん
NGNG>単にHelloWorldと表示する
の前に、HellowWorldとログ出力するだけのでも作ってみ。
それから、Canvasに文字や図を書くのをやってみよう。
0171デフォルトの名無しさん
NGNGそのあたりの仕様が載っているサイトや本があれば教えていただきたいのですが・・・
0172デフォルトの名無しさん
NGNGVアプリのP5型のJavaDocを見たけど
MailListenerのトコには、それらしい記述が
無いのですが?
もうちっとヒントをお願いします
0173163
NGNGありがとうございます。少しずつ調べながらがんばってみます!
0174デフォルトの名無しさん
NGNGJARに含まれるファイルをとりだすことは可能。
しかし、レコードストアをJARに保存するできない。
というか、JARは書き換えられないのでは?
0175デフォルトの名無しさん
NGNG>このインタフェースを実装したリスナを、DeviceControlのsetMailListener()メソッドを呼び出して
>登録してください。 メール着信に関するイベントは、MailListenerインタフェースのreceived()
>メソッドに通知されます。
と思いっきり書いてあるのだが。
>>171
Vアプリなら、Connector.open("jar://Filename/Resourcename");
とかでRecordStoreに保存したJARの中身にアクセスできるとドキュメントに書いてあった。
ezは知らない。
>>174
レコードストアをJARに保存するのではなくて、JARをレコードストアに保存したいのだと思われ。
0176171
NGNG>Vアプリなら、Connector.open("jar://Filename/Resourcename");
>とかでRecordStoreに保存したJARの中身にアクセスできるとドキュメントに書いてあった。
ありがとうございます!!
ところで、そのドキュメントって具体的にはなんと言うファイルでしょうか?
VodafoneのPDF資料を見ていたんですが、それらしい部分を見つけられなくて・・・
詳しい制限等知りたいので、お手数ですが教えていただければ助かります。
0177174
NGNG>> 175
"jar://" スキームは、単にJAR内のファイルを読むだけでなかったけ?
0178デフォルトの名無しさん
NGNG今月いっぱいは試そうにも試せないから、質問者の人に試してもらうって事で。
0179デフォルトの名無しさん
NGNGbyte buf[] = new byte[65536];
InputConnection c = (InputConnection)Connector.open("jar://"+レコードストア名+"/"+ファイル名 , Connector.READ);
InputStream is = c.openInputStream();
is.read(buf);
is.close();
c.close();
0180デフォルトの名無しさん
NGNG現在
/** キー押下イベントが発生した時に呼ばれるメソッド */
protected synchronized void keyPressed(int keyCode) {
if(gameState != GAME_PLAYING ||
(gameState == GAME_PLAYING && isPaused)) {
//ゲーム中ではない、又はゲーム中で一時停止中の場合はreturn
return;}
int gameCode = getGameAction(keyCode);
switch(gameCode) {
case LEFT://左キー押下時
for(int i = 0;i < 8;i++){
doLeft();
try{
Thread.sleep(50);
}catch(InterruptedException e){}
}
以下上下右が入ります。
}
}
/** キー押下状態の時に繰り返し呼ばれるメソッド */
protected void keyRepeated(int keyCode) {
keyPressed(keyCode);
}
という様に拾っているのですが(do〜は移動描画をしています)押しっぱなし状態だと
一歩動いてその後押してた方向に動きっぱなしになってしまいます。
スレッドの扱い方が悪いのでしょうか?
ご教授おねがいしまつ。
0181デフォルトの名無しさん
NGNGキー入力がキューイングされてるためだと思う。
keyPressed()で重い処理をすると、どうしてもキーに遅れが発生する。
keyPressed()と描画が、N:1 にできるように作れば、大丈夫とおもう。
0182wikiのVアプリスレまとめサイト”管理”人 ◆zaLvCUpNTU
NGNG押されたり放されたりしたときにフラグを上げ下げするとか?
0183デフォルトの名無しさん
NGNGresさんきゅ
しかし、MailListenerのJavaDocを読む限りは、
recieveのSMSの種類ってやつは
通常ステーション着信
緊急ステーション着信
グリーティング
スーパーメール
リレーメール
スカイメール
ウェブ着信
しか無いんだよ
実機で試してみると、skyMailの着信通知のときは
スカイメールが帰ってきてるみたい
なんか、そもそものアプローチが何か間違ってる?
0184デフォルトの名無しさん
NGNGそもそものアプローチというか、何がやりたいのかわからんのだけどなぁ。
一応整理しておくと、
・RingStateListener
→(ユーザーへの)着信通知(端末側での呼出音鳴動など)の開始、終了の際に呼び出される。
・MailListener
→端末にメールが着信した場合に呼び出される。
・TelephonyListener
→端末に音声着信した場合、電話が切れた場合に呼び出される。
0185デフォルトの名無しさん
NGNG済まん、用語の使い方が間違っていたよ>おれ
知りたいのは、SkyMailを送信した後の「配信確認」というやつです。
配信確認の通知もreceived()に来るみたいなんですが、
その時のSMSの種類がスカイメールみたいなので
困ってます
という話でした(^^;
0186デフォルトの名無しさん
NGNGMIDPじゃ、Keyイベントはすぐに処理を終わらせないといけない。
50msecを8回も待つとかやっちゃダメ。
Vなら以下のメソッドを使うのがいい
DeviceControl#getDeviceState( KEY_STATE)
それか、 >>182 のいうようにKeyPressed/KeyReleasedイベントで方向フラグを立てる・下げるをやって、
別スレッドでそのフラグを参照しながら描画するか。
>>185
実機使って実際にイベント起こして、
int detailの値を調べてみるしかないのでは。
そもそもDocに載ってないから、返ってくる値の保証もないだろうけど。
(時間や日付によって違う・機種によって違う、など)
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG>>2
0189デフォルトの名無しさん
NGNG通信相手は自分で立てた外部アクセス可能なサーバで、
エミュレータからはうまくいったのですが実機からはダメでした。
これは、やはりサーバの設定に問題があるということなのでしょうか?
以下、仕様&ソースです。
0190189
NGNG・Tomcat+java servlet
実機
・SH-52
0191189
NGNGimport javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import com.jblend.micro.io.*;
import java.io.*;
public class httpTest2 extends MIDlet implements CommandListener
{
private Form myForm;
private TextField tf;
private Command cm1,cm2;
private String formStr;
private final String URL = "http://smlsgrp.u-aizu.ac.jp:8080/test/servlet/saveDataServlet2";
private HttpConnection conn;
private InputStream in;
int ch;
StringBuffer result;
0192189
NGNGinithttpTest();
Display.getDisplay(this).setCurrent(myForm);
}
public void inithttpTest() {
formStr = "Input File Name";
myForm = new Form("HTTP TEST");
myForm.append(formStr);
tf = new TextField("File Name",null,10,TextField.ANY);
myForm.append(tf);
cm1 = new Command("送信開始", Command.SCREEN, 1);
myForm.addCommand(cm1);
cm2 = new Command("終了", Command.SCREEN, 2);
myForm.addCommand(cm2);
myForm.setCommandListener(this);
}
0193189
NGNGint i;
if( c == cm1 ){
if(tf.getString()==null){
formStr = "Please Input File Name!!";
}else{
try{
i=5;
result = new StringBuffer();
conn = (HttpConnection)Connector.open(URL+"?name="+tf.getString()+"&data="+Integer.toString(i), Connector.READ, true);
conn.setRequestMethod(HttpConnection.GET);
in = conn.openInputStream();
while ((ch = in.read()) != -1) {
result.append((char)ch);
}
in.close();
conn.close();
}catch(Exception e){
}
}
}else if( c == cm2 ){
0194189
NGNGdestroyApp(false);
notifyDestroyed();
}
}
// エントリポイント
public void startApp() {
}
// アプリの一時停止
public void pauseApp() {
}
// アプリの廃棄
public void destroyApp(boolean unconditional) {
}
}
0195189
NGNGpublic void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException{
String fileName = req.getParameter("name");
int data = Integer.valueOf(req.getParameter("data")).intValue();
try{
res.setContentType("text/plain");
DataOutputStream dout = new DataOutputStream(new FileOutputStream(dir + fileName, true));
dout.writeInt(data);
OutputStreamWriter osw =
new OutputStreamWriter(res.getOutputStream());
PrintWriter pw = new PrintWriter(osw);
pw.print("true");
pw.flush();
pw.close();
dout.close();
}catch(Exception e){
}
0196189
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGアプリをダウンロード。※ダウンロードは成功。
その後に、ダウンロードしたぺージに戻りたいのですが、
なぜか、全然別のページに飛んでしまいます。
(EZWebのTopページだったり)
ダウンロードページは下記のような記述をしています。
<a href="device:data/dnld?url=http://www.aaa.com/appli/download.cgi&name=aaa.kjx&size=123&disposition=devkdj2&title=テスト">ダウンロード</a>
なにかわかるかたが、いらっしゃいましたらおしえてください。
0199デフォルトの名無しさん
NGNGこれが意外と不便。
0200189
NGNGレスありがとうございました。
mod_jk2でApacheとTomcatを連携させることで解決しました。
ついでに質問なんですが、
「連続的なデータを携帯アプリからサーバに送ってそれをservletがファイルに書き込む。」
みたいな処理をさせたいのですが、この場合streamを使うとうまいこといきません。
携帯のほうで
for(){
conn = (HttpConnection)Connector.open(URL+"?file_name="+xxxxx+"&data=xxxxx", Connector.READ, true);
}
のようにしても、途中で途切れてしまいます。
何かよいお知恵はありませんでしょうか?
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGVはまだいいんだがauの方で文字がでかくなりすぎるんだが・・。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGVodafoneのC4アプリを書いてて、大分大きくなってきたので、噂のjargで縮めようと思ったのですが、
適用後のjarの挙動が変わってしまうのです。
スプライトの扱いが面倒だったので、そこだけ本体とは別クラスにしたのですが、
その別クラスの中にあるfor(int i=0; i<10; i++)みたいなベタなループが無限ループ化してしまって…。
こんなことって、あるもんなんでしょうか。
javac -encoding SJIS -g:none -O -target 1.1 -bootclasspath C:\V-appli_SDK_101\lib\stubclasses.zip src\*.java -d class
preverify -classpath C:\V-appli_SDK_101\lib\stubclasses.zip;.\class AppName
preverify -classpath C:\V-appli_SDK_101\lib\stubclasses.zip;.\class Main
preverify -classpath C:\V-appli_SDK_101\lib\stubclasses.zip;.\class Sprite
jar cfm bin\AppName.jar bin\MANIFEST.MF -C output .
java -jar jarg.jar -j2me-prev preverify.exe -j2me-cp C:\V-appli_SDK_101\lib\stubclasses.zip bin\AppName.jar
みたいなバッチを書いてビルドしてるんですけど…。
AppNameがMIDlet継承、Mainが実際の本体クラス、Spriteがスプライトの取り扱いクラスです。
うまくいかないのは漏れが童貞なせいですか?
ついでに、pause〜resumeの流れの中で、たまにPhraseTrackerがレジュームをサボりやがって
音が復元しないで止まってしまうのも、漏れが童貞なせいですか?
0205デフォルトの名無しさん
NGNGじゃないとムリですか?
表示できればいいのでImageオブジェクトで十分なのですけど、
Phase2.5ではそれすらできなくて鬱。
0206デフォルトの名無しさん
NGNGjargのバグかもよ
バイトコードの最適化を切ってみそ
0207デフォルトの名無しさん
NGNG自分のアプリで使ってみたよ
上の行をそのままDOS窓から叩いてみた
70kが68kになった
画像が多かったから、あまりお徳では無かったよー
動作は特に支障なし
ちなみに、童貞は卒業済み
0208デフォルトの名無しさん
NGNGスプライトは使っていない(実は使ったこと無い)
forループは満載
C出身なので、クラス分けも盛大にやってる
0209デフォルトの名無しさん
NGNGおれも使ってみよう
ちなみにまだ卒業してません(もうすぐ30歳)
0210デフォルトの名無しさん
NGNG魔法が使えるようになるまでもう少しだね。
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNGretroguardじゃだめなの?
0214デフォルトの名無しさん
NGNGソフトキーのボタンが利かなくなってしまうのですが
どのように対応すればよいのでしょう?
0215204
NGNGもとい、>>206氏の指摘どおり -noboc でバイトコード最適化切ったら動くようになりました。
他のオプションもひとしきりためしたけど、動作が変わったのは -noboc だけですた。
似たような構造のほかのプログラムにも jarg かけたけど、普通に動いちゃったし、レアケースなのかなあ。
とにかく、マゾでありがとうございます。
ついでに 7zip かけたら、トータル 30KB が 25KB くらいまでダイエットされました。
漏れの童貞もらってやってください。
0216デフォルトの名無しさん
NGNGProGuardとかに乗り換えた方がいいのかな?
それと、7zipを使う場合はアーカイブするファイル数に注意
昔使ったとき、N503(4かも?)でアーカイブするファイル数が多いと起動出来なかった記憶がある
DTはイラネ。適当にその辺に捨ててくれ
不法投棄になりそうなら、業者に引き取ってもらえ
0217デフォルトの名無しさん
NGNGでもどうしてもSun ONE Studio4 Mobile Edition と
VodafoneエミュのIDE統合ができない。
http://zdn.zentek.co.jp
のサポートからダウンできる資料を参考にやってみたけど。
この通りやって実行すると「メインクラスがない」とか怒られて
うまくアプリが動作しない。何を勘違いしているのだろう。
だれか出来た人います? JBuilderではどうでしょう?
0218217
NGNG0219デフォルトの名無しさん
NGNGメインクラスがないって言われるのは、
きちんと大抵はCLASSPATHが通ってないか、
そんな理由ではなかったか?
0220217
NGNGどうやらそのようです。マニュアル通りにやるとDOSプロンプトから、
java -cp c:\J-PHONE-SDK\bin\jbmidp.jar;c:\J-PHONE-SDK\lib\stubclass.zip;c:\WTK104\lib\midpapi.zip com.zentek.jam.ControlPanel c:\test\test.jad
と呼ぶことに相当するようです。すると
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
と例外が多数発生。
どうやら、javaVMにクラスパスを渡すのに失敗してるようです。
javaVMのヘルプにはクラスパスは ; で区切れと書いてあるのですが。
最初は ; の前後にスペースを入れるのかと思ってましたが、
入れると不正な処理が発生(汗
結果としては
java -cp c:\J-PHONE-SDK\bin\jbmidp.jar com.zentek.jam.ControlPanel c:\test\test.jad
とやると通るようなので、そうなるようにIDEを設定したら上手くいきました。
うーむ謎だ。エミュが起動すればよいから、これで良いのですかね?
0221217
NGNGこれらはIDEから使わないのか?なんで2つあるんだろう。
0222デフォルトの名無しさん
NGNGどっかで、Phrase()のコンストラクタにbyte配列を渡すとうまくいく、とあったんだけど
できない・・
InputStream in = getClass().getResourceAsStream("/test.mmf") ;
int size = in.available();
byte[] b_data = new byte[size];
in.read( b_data, 0, b_data.length) ;
in.close() ;
Phrase p = new Phrase(b_data);
size は0が返ってきてしまう・・
それで、pはnullだと・・
どこに問題があるの?
P4端末だと「com.jblend.media.smaf.phrase」を使用して問題なく動作したんだけどな・・
0223デフォルトの名無しさん
NGNGjavadoc読めよ
0224222
NGNGすまん間違ってた・・
byte[] b_data = new byte[1000];
in.read(b_data, 0, b_data.length);
in.close();
Phrase p = new Phrase(b_data); <<-- ここ
ここで、Phrase:checkfailedって言われて落ちる・・
十分な長さの配列宣言してるのに。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGin.readで指定したサイズ分が読めるとは限らないので
戻り値に-1が帰ってくるまで読み続けるのが良いかと。
こんな感じか?
boolean bQuit = false;
int offset = 0;
byte[] b_data = new byte[1000];
while(bQuit!=true)
{
int readSize = in.read(b_data, offset, b_data.length);
if(readSize == -1)
bQuit = true;
else
offset += readSize;
}
in.close();
0227244
NGNGどうも、byte配列には読み込めてるみたい。
Phraseのコンストラクタに渡しているところで、データのチェックが失敗しているみたい・・
なんでだろう?
0228デフォルトの名無しさん
NGNGhttp://www.geocities.jp/p_java_lang/
0229デフォルトの名無しさん
NGNG読み込むファイルのサイズと、バイト配列のサイズが一緒じゃないとエラーになるぞ。
0230227
NGNGそうかと思ってやってみたんだけど、エラーになるなー。
バイナリエディタで開いてみたら、208Byteだったんで、やってみたけどダメだった・・
mmfファイルってC4端末で読めるんだよね?
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG.mmfはAudio Phraseだよ
Audio Pharse再生できるのはP型以降、よってC4型では再生不可かと
0233230
NGNGえ!?mmfってAudioPhraseなんだ!
スマン、入り口が間違ってた・・
みんなサソキュ。
0234デフォルトの名無しさん
NGNGと理解していたのだけど違う?
フルカラーのjpgやPNGを動かしたりできるかな?
なぜか
Image img = Image.createImage("/test.jpg");
g.drawImage(img, 0, 0, Graphics.LEFT | Graphics.TOP);
とやると、P4型エミュだと画像が表示されるのだが。(WirelessToolkit だと無理
これって公式な動作?
0235デフォルトの名無しさん
NGNGezplus(Java)で、HttpConnection (cgiファイルに対してGETリクエスト)
を利用して日本語のテキストを取得したいんですが、文字化けしてしまいます。
(通信は上手く言ってるようなのですが)
どこをいじればよいか色々調べたのですが、分からないのでどなたか教えてください。
というか、なにを調べたらいいかもよく分かりません。
推測ですが、『文字コード』という文字を解釈する約束みたいなのがあって、
その約束を上手く守れてないからでしょうか?
だとしたら、Java、cgi、どちらのコードに問題があるのでしょうか。
それとも見当ハズレの推測でしょうか?
ちなみに、英数字では思い通りの結果が得られます。
宜しくお願いいたします。m(_ _)m
0236235
NGNG宜しくお願いします。
0237235
NGNGCGIはパールです。
0238デフォルトの名無しさん
NGNGshift-jisしか駄目なはず。
IEでエンコードがどれになってるかを調べて、shift-jisになって
なかったらCGIが原因でしょう。
jcodeなりで変換してから出力しましょう。
0239235
NGNGどうもありがとうございます。
ところが
今IEで確認したのですが、
(表示)->(エンコード)
シフトJISになってました。
0240デフォルトの名無しさん
NGNGWTKはJPEG未サポートだったはず
>>235
その部分のソースコードさらしてみ?
0241デフォルトの名無しさん
NGNGimage = Image.createImage(b_image, 0, b_image.length);
あかんのか?
0242デフォルトの名無しさん
NGNGJPEGでも動くし、動くならそれでもいいような、、、
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG文字列化するときに、SJISを指定してる?
0245デフォルトの名無しさん
NGNGなので、変換をやってないと思われ
バイト列にSJISのデータを読み込んで、変換すればヨロシ
詳しくはCLDCのAPIマニュアルのStringクラスを参照の事
0246235
NGNGご意見を参考にして必死で考えたつもりなんですが、
次のようなコードを書くことしか出来ませんでした。
//受け取った最初の文字列
String oStr;
/* oStrを受け取る処理がありますが省略 */
//Shift_JIS の文字コードのバイト配列に変換(という意味なんでしょうか?)
byte[] b = oStr.getBytes("SJIS");
//bをShift_JISコードを指定して文字列に変換
String nStr = new String(b,"SJIS");
ここまでやってみたのですが、やはり文字はほとんどが"?"(バイトをそのまま出すと"63"になりました)でした。
全く見当違いなのか、惜しいところまで行ってるのかも分かりません。
出来ましたらぜひ更なるご教授をお願いいたします。
0247235、246
NGNGgetByte(String)
String(byte[],String)
で、文字コードを指定する引数は以下のものを試しましたが、
”SJIS" 以外、全て UnsupportedEncodingException が返されます
"SJIS",
"Shift_JIS","EUC_JP","EUC_JP" (この3つは例外が返る)
0248デフォルトの名無しさん
NGNG"EUC-JP"でした。。
0249235
NGNG1.Perl-CGIのコード : ez_sample.cgi
#!/usr/local/bin/perl
$title = "ez_sample";
&printData(); #このサブルーチンの呼び出しのみ
#表示する文字列を取得して、その長さを求める
sub printData(){
$text = &getText(); #表示する文字列の取得
$len = length($text); #文字列の長さ(i-mode に必要)
print "Content-type: text/html\n";
print "Charset: Shift_JIS\n";
print "Content-length: $len\n";
print "\n";
print "$text"; #本文の出力
}
sub getText(){
$text = "<HTML>\n<HEAD>\n\t<TITLE>$title</TITLE></HEAD>\n<BODY>\n";
$text = $text."日本語のサンプル<br>\n";
$text = $text."A sample in English.\n";
$text = $text."</BODY>\n</HTML>\n";
return $text;
}
0250235
NGNGtest 1/4
private boolean test(){
System.out.println("データ受信");
String url = "http://hpcgi2.nifty.com/zubora/ez_sample.cgi";
HttpConnection hc = null;
DataInputStream di = null;
String res = null;
byte[] bs = null;
String newString = null;
0251デフォルトの名無しさん
NGNGhc = (HttpConnection) Connector.open(url);
di = new DataInputStream(hc.openInputStream());
int ch;
while((ch = di.read()) != -1){
res += (char)ch;
}
}catch(Exception e){ }
finally{
try{
if(hc != null)
hc.close();
if(di != null)
di.close();
}catch(Exception e){ }
}
System.out.println("受信直後のデータ");
System.out.println(res);
0252235 test 3/4
NGNGbs = res.getBytes("SJIS");
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}
try{
newString = new String(bs,"SJIS");
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}
System.out.println("new String(getByte(res,\"SJIS\"),\"SJIS\")");
System.out.println(newString);
return true;
}
■ このスレッドは過去ログ倉庫に格納されています