Java 字符串编码字符集问题

Java 字符串编码字符集问题,java,character-encoding,Java,Character Encoding,我收到一个ISO-8859-1编码的字符串,但有些字符没有正确解码 以下是我正在使用的代码: InputStream plainIs = plainText.getIs(); StringBuilder stringBuilder = new StringBuilder(); String line = null; try (BufferedReader bufferedReader = new BufferedReader(new InputStre

我收到一个ISO-8859-1编码的字符串,但有些字符没有正确解码

以下是我正在使用的代码:

InputStream plainIs = plainText.getIs();
StringBuilder stringBuilder = new StringBuilder();
String line = null;                 
try (BufferedReader bufferedReader = new BufferedReader(new 
    InputStreamReader(plainIs, "iso-8859-1"))) {    
    while ((line = bufferedReader.readLine()) != null) {
            stringBuilder.append(line);
    }
}                                       
body = stringBuilder.toString();
log.debug("Plain Text Body: "+body);
作为输入,我有这样一句话:

L=92objet est donc de proposer un outil simple =E9volutif
但是翻译是

L�objet est donc de proposer un outil simple évolutif
字符=E9被正确地翻译为é,但字符L=92被翻译为:L�objet


知道我为什么只有部分转换吗?

从图表中可以看出,ISO-8859-1中似乎没有定义92(90年代没有定义)。它将
ee
显示为
E9
,这就是它输出正确的原因。如果试图将
'
作为字符,请尝试使用
=27
而不是
=92

还找到了带有Windows-1252的
ISO-8859-1
超集,该超集在第二版中定义了
92

在Microsoft Windows 2.0中使用的第二个版本已经定义了位置D7、F7、91和92


您是否将其编码/解码为iso-8859?您希望92是什么字符?我收到的字符串肯定是用iso-8859-1编码的,我需要使用正确的字符显示该字符串,即“如果0x92不是有效字符,则表示“L'objet est donc de proposer un outil simpleévolatif”。您的字符串可能是Windows-1252,其中0x92是一个卷曲的单引号。是的,我看到ISO-8859-1中没有=92,但这是一个从MIMessage(来自outlook)检索的字符串,其中该部分清楚地提到了ISO-8859-1…我将尝试使用Windows-1252,这很完美,通过使用Windows-1252,我的转换完成了!