Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

byte配列から文字列変換

質問です。
String a = new Stirng("あ")
byte[] ff = a.getBytes();
をした時に、Byte配列ffから文字列"あ"を取得する場合は
どのようにすれば宜しいでしょうか。
よろしくお願い致します。

2

回答

101168

閲覧

2件の回答

評価

0

String b = new String( ff );

これで取得できます。

--------------------------------------------
String(byte[] bytes) 
プラットフォームのデフォルト文字セットを使用して、指定されたバイト配列を復号化することによって、新しい String を構築します。

評価

0

>プラットフォームのデフォルト文字セットを使用
これがポイントであり、落とし穴でもあります。

たとえばWindowsで

byte[] ff = "あ".getBytes();

したffをUnixで

String a = new String(ff);

しても、元に戻りません。
Javaではこのように、プラットフォーム依存になる部分は極力無くして置いたほうが良いです。

byte [] ff = "あ".getBytes("Shift_JIS");
String a = new String(ff, "Shift_JIS");

なら、どの環境でも正しく動作します。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。