2011-01-14 18 views
0

デコードのHex文字列値の値が文字列変換に問題があります。Google App Engine 16進デコードの問題

が入力された場合:

private static String hexStringToByteArray(String s) { 
     int len = s.length(); 
     byte[] data = new byte[len/2]; 
     for (int i = 0; i < len; i += 2) { 
      data[i/2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i+1), 16)); 
     } 

     return new String(data); 
} 

他のJavaアプリケーションで、この1つの作業の罰金が、Google App Engineのために、これは動作しません。

687474703a2f2f7777772e676f6f676c652e6c6b2f 

は、ここに私のデコードロジックです。

これがどうして起こったのですか?

+2

なぜ機能しないのですか?何が起こるのですか? – SLaks

+0

入力と出力は同じです。予想される出力は次のとおりです。http://www.google.lk – Chandana

答えて

1

App Engineのデフォルトのエンコーディングが期待したものと異なる場合があります。データバイト配列から最終的なStringを構築するときは、正しいエンコーディング(UTF-8、UTF-16など)を渡します。

関連する問題