Home > database >  General text encoding program in Java [duplicate]
General text encoding program in Java [duplicate]

Time:09-29

I try to write a program which will take as an input some text and then the name of the target encoding (ASCII, UTF-8, etc.).

Is there any way in Java to write something like this?

String encodedText = String.encode(text, encoding);

Thanks for any suggestions!

CodePudding user response:

You can use the following code to convert from byte[] to String with your intended character set.

new String(bytes, StandardCharsets.UTF_8);

or as Andy Turner mentioned in the comments, you can use the getBytes method of the String class.

text.getBytes(StandardCharsets.UTF_8)

CodePudding user response:

String decodeText(String input, String encoding) throws IOException {
    return 
      new BufferedReader(
        new InputStreamReader(
          new ByteArrayInputStream(input.getBytes()), 
          Charset.forName(encoding)))
        .readLine();
}

Should do the trick.

Here is a well written post about how encoding works. I suggest you read through it before implementing this solution. Java-Char-Encoding

CodePudding user response:

If you want to do it for whole files you can make a loop which reads a line from a FileReader and writes it through a FileWriter. Both classes accept charsets to their constructors since java 11.

  • Related