このコードにはどのような問題がありますか?私はISO8859 Stringを作った。だからÄÖÜのほとんどはいくつかのkrypooutputです。それはいいです。しかし、それらを元の文字(UTF8など)に変換する方法はありますか?ISO8859文字列をUTF8に変換しますか? ÄÖÜ=>ÃÃ?なぜですか?
String s = new String("Üü?öäABC".getBytes(), "ISO-8859-15");
System.out.println(s);
//ÃÃŒ?öÀABC => ok(?)
System.out.println(new String(s.getBytes(), "ISO-8859-15"));
//ÃÂÃÅ?öÃâ¬ABC => ok(?)
System.out.println(new String(s.getBytes(), "UTF-8"));
//ÃÃŒ?öÀABC => huh?
"krypooutput"は暗号関数の出力を意味すると仮定して、なぜそれを "通常の文字"に変換しようとしていますか?それはデータの損失を招くため、安全ではありません。人間が読める形式のデータが必要な場合は、16進エンコードまたはURLエンコードを使用します。 –
Javaには "ISO8859 String"のようなものはありません。 http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html – axtavt
を参照してください。次に、 "ÃÃŒ?öÀABC"のような入力文字列を通常に変換する方法はありますか? (文字列がISO8859ファイルのものであることが分かっている場合)。 – Lissy