I asked a week ago a question about this, now I tried to google around and found this toHex method. It has an empty spot about the charset. For example I want to use UTF-8 but if I enter it returns an error and if I don't specify it, the output is huge amount of 0s and few numbers afterwards. My goal is a Hex representation of the entered string

public String toHex(String arg) {
    return String.format("%040x", new BigInteger(1, arg.getBytes(/*YOUR_CHARSET?*/)));
    public static void main(String[] args){
        EncodingHex ec = new EncodingHex();

2 Years
Discussion Span
Last Post by JamesCherrill

Ahhh - the old BigInteger trick. What you have found is an over-complicated version. The simplest form is just one short line...

You can use the simpler version of getBytes without any arguments - that just uses the default char set. If you stick to ASCII characters you'll be OK.

Then you can use BigInteger's toString(int radix) method with a radix of 16 to get a hex string, no need for any other formatting.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.