我有一个字节数组,将其放入InputStreamReader中并对其进行一些操作。
Reader reader = new InputStreamReader(new ByteArrayInputStream(byteArr));
JVM默认使用cp1252编码,但是我要转换为字节数组的文件使用的是utf-8编码。同时这个文件中包含了德文umlauts字符。当我将该字节数组放入InputStreamReader时,Java会将umlauts字符解码为错误的符号。例如,ü被表示为ü。我尝试在InputStreamReader构造函数中加入"UTF-8"和Charset.forName("UTF-8").newDecoder(),并通过new String(oldStr.getBytes("cp1252"), "UTF-8)使用新编码从读取器中转换字符串,但这没有帮助解决问题。在调试器中,我发现读取器变量中有StreamDecoder参数,它具有MS1252$Decoder值。也许这可以解决我的问题,但我不知道如何修复它。