UTF-8 byte[] to String UTF-8 byte[] to String java java

UTF-8 byte[] to String


Look at the constructor for String

String str = new String(bytes, StandardCharsets.UTF_8);

And if you're feeling lazy, you can use the Apache Commons IO library to convert the InputStream to a String directly:

String str = IOUtils.toString(inputStream, StandardCharsets.UTF_8);


Java String class has a built-in-constructor for converting byte array to string.

byte[] byteArray = new byte[] {87, 79, 87, 46, 46, 46};String value = new String(byteArray, "UTF-8");


To convert utf-8 data, you can't assume a 1-1 correspondence between bytes and characters.Try this:

String file_string = new String(bytes, "UTF-8");

(Bah. I see I'm way to slow in hitting the Post Your Answer button.)

To read an entire file as a String, do something like this:

public String openFileToString(String fileName) throws IOException{    InputStream is = new BufferedInputStream(new FileInputStream(fileName));    try {        InputStreamReader rdr = new InputStreamReader(is, "UTF-8");        StringBuilder contents = new StringBuilder();        char[] buff = new char[4096];        int len = rdr.read(buff);        while (len >= 0) {            contents.append(buff, 0, len);        }        return buff.toString();    } finally {        try {            is.close();        } catch (Exception e) {            // log error in closing the file        }    }}