在java中转换为utf-8

时间:2012-03-08 15:14:17

标签: java unicode utf-8 normalization unicode-normalization

我只有字符串\u0130smail,我想将其转换为 İsmail并转换

  \u0130 --> İ   
  \u00E7 --> ç

我试过

String str = "\u0130smail";
sysout(str); 

并且它有效,但每当我从数据库或互联网上获得字符串"\u0130smail"时,它都不会给出正确的结果。

static String deneme(String string){
    String string2 = null;

    try {
        byte[] utf8 = string.getBytes("UTF-8");
        string2 = new String(utf8, "UTF-8");
    } catch (UnsupportedEncodingException e) {
    }
    return string2;
}

也不起作用。

2 个答案:

答案 0 :(得分:3)

从语言的角度来看,字符串"\u0130smail""İsmail"完全相同。如果你的意思是你得到一个字符串"\\u0130smail"(请注意我已经转义了反斜杠),那么你必须找到unicode代码点的模式并将它们转换为普通的unicode字母或者只打印数字,无论你需要什么。在这种情况下,正则表达式可以帮助您。

答案 1 :(得分:0)

将现有字符串转换为字节并再次返回不会对您有所帮助。你需要查看你所拥有的字符串中的确切字符 - 然后找出 你得到它们的方式。

我建议您将字符串中每个字符的整数值打印为一个整数(理想情况下为十六进制),以准确找出您所拥有的...然后将其追溯到目前为止尽你所能,弄清楚出了什么问题。