I have array of bytes that should be converted to string. That array consists of Windows-1257 encoded text. What is the best way of converting this array to string? Later I will need to convert string to ISO-8859-13 byte array, but I know how to make this part of job.
I tried like this:
String result = new String(currentByteArray, "ISO-8859-13");
But of course got garbage in local character places.
String unicodeString = new String(currentByteArray, "Windows-1257");
byte[] result = unicodeString.getBytes("ISO-8859-13");
or
PrintWriter out = new PrintWriter(file, "ISO-8859-13");
Java is very simple: String/Reader&Writer is Unicode text capable to contain all characters.
And binary byte[]s/InputStream&OutputStream is for binary data.
Hence the String constructor for bytes needs the original encoding of those bytes,
and getting bytes needs the encoding where those bytes should be in.
Be aware that there are overloaded versions with one parameter, without encoding. That uses the platform encoding; not-portable.