查看java String 字符编码:
public static String getEncoding(String str) {
String encode = "UTF-8";
String effectiveEncode = "";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是UTF-8
String s2 = encode;
effectiveEncode += s2;
}
} catch (Exception exception2) {
}
encode = "GB2312";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GB2312
String s = encode;
effectiveEncode += s; //是的话,返回“GB2312“,以下代码同理
}
} catch (Exception exception) {
}
encode = "ISO-8859-1";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是ISO-8859-1
String s1 = encode;
effectiveEncode += s1;
}
} catch (Exception exception1) {
}
encode = "GBK";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GBK
String s3 = encode;
effectiveEncode += s3;
}
} catch (Exception exception3) {
}
return effectiveEncode;
}
将gbk的字符串改为utf-8的字符串
if (os.toLowerCase().startsWith("win")) {
// Windows系统,采用GBK编码获取输入信息
licenseInfo.setSystemType("win");
br = new BufferedReader(new InputStreamReader(System.in, "utf-8"));
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:\\a.txt"), "gbk"));
String outStr;
outStr = br.readLine();
wr.write(outStr, 0, outStr.length());
wr.flush();
/* {
System.out.println("输入的:" + outStr +", 编码为"+getEncoding(outStr));// java内部只有unicode编码 所以str是unicode编码
endUser = new String(outStr.getBytes("UTF-8"), "UTF-8");// str.getBytes("GBK")是gbk编码,但是str2是unicode编码
// System.out.println(endUser);
System.out.println("输入的:" + endUser +", 编码为"+getEncoding(endUser));// java内部只有unicode编码 所以str是unicode编码
}*/
}