java解码来自UTF8的输入流并将其写入日志文件
我有一个xml文件,它将与UTF-8编码一起作为代码的输入流,我需要将该文件写入日志文件。下面是我尝试过的代码,但不起作用,它会打印所有编码字段
将编码的输入流作为
FileOutputStream streamer = new FileOutputStream(filename);
OutputStreamWriter writer = new OutputStreamWriter(streamer, "UTF-8");
writer输出流作为输入以下代码。encodedInputStream
代码
InputStreamReader decodedInputStream = new InputStreamReader(this.encodedInputStream , StandardCharsets.UTF_8);
BufferedReader reader = new BufferedReader(decodedInputStream);
String readLine = null;
StringBuilder builder = new StringBuilder();
try {
while ((readLine = reader.readLine())!=null){
readLine = URLDecoder.decode(readLine, "UTF-8");
builder.append(readLine);
}
}catch(Exception e){
log.error("Exception while logging WSCallMFE", e);
}
String result = builder.toString();
log.info(result);
上面的代码打印下面的值
%3Cprop%3E%3Cjavavendor%3ETest+Test%3C%2Fjavavendor%3E%0A%3Cdrive%3EC%3A%3C%2Fdrive
预期结果
<prop><java.vendor>Test Test</java.vendor>
<drive>C:</drive>
如果我将xml记事本文件作为输入流直接传递给this。encodedInputStream,然后给出预期的输出。 知道如何转换整个编码文件并去除编码字符吗
# 1 楼答案
这看起来像是用一些URL Encoder编码的。在这里,您可以使用来自} 删除这些编码内容:
java.net
的^{输出: