- - PR -
byte[] → 文字列変換での文字化けについて(Linux時)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-10-26 18:11
おせわになっています。
文字化け&文字コードについて質問させてください 現在以下のメソッドを使い byte配列を文字列に置き換える処理を 行っています。 その際、ローカル環境では問題なく動いていたものが Linuxサーバ上で動作させた所文字化けとなってしまいました
サーバの文字コードはMS932にしてるとの確認をとれたのでコード指定は MS932としていますが、Google検索もしてみたのですがうまく見つけれず 解決の糸口がみえません。 linux環境開発はほとんど経験ない為、どなたか情報もらえないでしょうか 環境 ローカル eclipse3.0 JDK1.4.2_06 サーバ Linux Cosminexus | ||||
|
投稿日時: 2005-10-26 18:18
まず、このメソッドに渡しているバイト列をダンプして確認してみてはいかがでしょう。
同じバイト列を渡してローカル環境で実行しても同じ結果になるかと思いますのでこのコードに渡ってくる前を確認するのが良いかと存じます。 | ||||
|
投稿日時: 2005-10-26 18:43
お世話になっています。
バイト単位でのダンプの取り方がやったことなかったのですが String str = "あいうえお"; byte[] b = str.getByte(); for(int i=0; i<b.length; i++){ System.out.println("b["+i+"]: " + b[i] ); } としたところ以下のように表示されました b[1]: -94 b[2]: -92 b[3]: -92 b[4]: -92 b[5]: -90 b[6]: -92 b[7]: -88 b[8]: -92 b[9]: -86 また、文字列あいうえおをバイナリエディタで出したところ以下のように 82A082A282A482A682A8 なったため、バイト配列に落とした時点でおかしいということでしょうか? 文字コード表などとも見比べてみたのですが、対策がわかりません この場合getByte時になんらかの対策が必要ということでしょうか? | ||||
|
投稿日時: 2005-10-26 18:56
無事(?)解決しました
getByteした時点で文字コードおかしいならと str.getByte("MS932"); とし、取得する際も return new String(bytes, "MS932"); としてやることで文字化け回避できました。 ありがとうございました |
1