2007年12月6日
Javaプログラミングで見事にはまる
どうも、頭の中にメモリの構造が染み付いているらしい ![]()
きっと、アセンブラ(X86系)やCでプログラミングしてきた弊害なんでしょう
昨日、書いていた通信プログラムは、元々シリアルの通信(RS232)で実装されていたモノなんですが…良くある
通信の中身は同じってやつです。そこで、安直に中身をbyte単位で扱ったわけです(STXやETX,BCCなど扱いやすいんだもの)。
通信試験のためにクライアントからの要求に応じて、ファイルを返すサーバプログラムで、実際の試験ケースにはありえない日本語を含んだ応答ファイルを用意しまったバカなわたし (調子にのったわけですね)
すると…文字化けするんです。当然なんです。byteからStringに変換するのに1byte単位でStringに変換して連結するなんて化けて当然なんです
byte配列からStringに変換すれば良いだけだったんです。わたしが悪いんです
String str = new String(byteArray);
でも、Javaって文字コードで化けるイメージがあるじゃないですかぁ~なので、視点がずれて原因の特定に時間がかかったんです(超、言い訳)。
後で思えばおバカなことで、はまることって多いですよね
わたしだけかな
TrackBack URL :
