作業中のBlackberryプロジェクトがあり、UTF-16LE(リトルエンディアン)を使用してエンコードされた文字列のバイト配列を、UTF-16BE(ビッグエンディアン)エンコードの文字列のバイト配列に変換する必要があります。その逆。接続しているサーバーは、BlackBerryデバイスにUTF-16LEエンコーディングの文字列のバイト配列を送信していますが、デバイスはUTF-16LEをネイティブにサポートしていません。バイト配列を文字列にデコードしようとすると、文字列が判読できなくなります。ただし、このデバイスはUTF-16BEをサポートしています。また、このプロセスを逆にする必要があります。つまり、UTF-16BEエンコーディングを使用した文字列のバイト配列をサーバーが期待するもの(UTF-16LE)に変換します。ありがとう。
デバイスでこれを行うことはできません:
String test = "test";
byte[] testBytes = test.getBytes("UTF-16LE");// throws UnsupportedEncodingException
私はこれを行うことができます:
String test = "test";
byte[] testBytes = test.getBytes("UTF-16BE");//works