user2577756
user2577756

Reputation: 79

How to get UTF-8 conversion for a string

Frédéric in java converted to Frédéric. However i need to pass the proper string to my client. How to achieve this in Java ?

Did tried

String a = "Frédéric";
String b = new String(a.getBytes(), "UTF-8");

However string b also contain same value as a. I am expecting string should able to store value as : Frédéric How to pass this value properly to client.

Upvotes: 0

Views: 134

Answers (4)

Chris Martin
Chris Martin

Reputation: 30756

If I understand the question correctly, you're looking for a function that will repair strings that have been damaged by others' encoding mistakes?

Here's one that seems to work on the example you gave:

static String fix(String badInput) {
    byte[] bytes = badInput.getBytes(Charset.forName("cp1252"));
    return new String(bytes, Charset.forName("UTF-8"));
}

fix("Frédéric") == "Frédéric"

Upvotes: 2

piet.t
piet.t

Reputation: 11911

If System.out.println("Frédéric") shows the garbled output on the console it is most likely that the encodings used in your sourcecode (seems to be UTF-8) is not the same as the one used by the compiler - which by default is the platform-encoding, so probably some flavor of ISO-8859. Try using javac -encoding UTF-8 to compile your source (or set the appropriate property of your build environment) and you should be OK.

If you are sending this to some other piece of client software it's most likely an encoding issue on the client-side.

Upvotes: 0

nem035
nem035

Reputation: 35501

Find your language code here and use that.

String a = new String(yourString.getBytes(), YOUR_ENCODING);

You can also try:

String a = URLEncoder.encode(yourString, HTTP.YOUR_ENCODING);

Upvotes: 0

remipod
remipod

Reputation: 11729

The answer is quite complicated. See http://www.joelonsoftware.com/articles/Unicode.html for basic understanding. My first suggestion would be to save your Java file with utf-8. Default for Eclipse on Windows would be cp1252 which might be your problem. Hope I could help.

Upvotes: 0

Related Questions