私のプログラムでは、入力として取得したバイト ストリームを文字列に変換します。ただし、バイトストリームに ë を含む単語が含まれている場合、この文字は % に変換されます。これを修正するにはどうすればよいですか?
どうも
これらの文字をエンコードするには、
String オブジェクトを に変換しUTF-8
、メソッドを呼び出してgetBytes
、適切なエンコーディング識別子をパラメータとして指定します。getBytes メソッドは、バイト配列を UTF-8 形式で返します。非 Unicode バイトの配列から String オブジェクトを作成するには、encoding パラメータを指定して String コンストラクタを呼び出します。これを参照して、
try {
byte[] utf8Bytes = original.getBytes("UTF8");
byte[] defaultBytes = original.getBytes();
String roundTrip = new String(utf8Bytes, "UTF8");
System.out.println("roundTrip = " + roundTrip);
System.out.println();
printBytes(utf8Bytes, "utf8Bytes");
System.out.println();
printBytes(defaultBytes, "defaultBytes");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}