@VicJordan发布的答案不正确。调用时
getBytes(),您将获得以 系统的本机字符编码 (可能为UTF-8,也可能不是UTF-8)
编码 的字符串的原始字节。然后,您将这些字节当作是用UTF-8编码的字节,可能不是。
一种更可靠的方法是将Shift_JIS文件读入Java String。然后,使用UTF-8编码写出Java String。
InputStream in = ...Reader reader = new InputStreamReader(in, "Shift_JIS");StringBuilder sb = new StringBuilder();int read;while ((read = reader.read()) != -1){ sb.append((char)read);}reader.close();String string = sb.toString();OutputStream out = ...Writer writer = new OutputStreamWriter(out, "UTF-8");writer.write(string);writer.close();


