网上大部分方法:先use name latin;然后再
System.out.println(new String(s.getBytes("ISO-8859-1"), "UTF-8"));
尝试过以后,完全不好使。
下面方法亲测有效:sql语句正常写,不需要添加use name,得到的string用以下函数转换
public String convertCharset(String s) { if (s != null) { try { int length = s.length(); byte[] buffer = new byte[length]; // 0x81 to Unicode 0x0081, 0x8d to 0x008d, 0x8f to 0x008f, 0x90 // to 0x0090, and 0x9d to 0x009d. for (int i = 0; i < length; ++i) { char c = s.charAt(i); if (c == 0x0081) { buffer[i] = (byte) 0x81; } else if (c == 0x008d) { buffer[i] = (byte) 0x8d; } else if (c == 0x008f) { buffer[i] = (byte) 0x8f; } else if (c == 0x0090) { buffer[i] = (byte) 0x90; } else if (c == 0x009d) { buffer[i] = (byte) 0x9d; } else { buffer[i] = Character.toString(c).getBytes("CP1252")[0]; } } String result = new String(buffer, "UTF-8"); return result; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } return null; }