Java - 使用Scanner读取字符串给我奇怪的字符

时间:2016-07-05 15:44:06

标签: java java.util.scanner

如何保存字符串:

<title="<html><center>TURN: Washington's Spies (TV Series 2014– ) - IMDb</center></html>">

稍微解析一下标题后,只需使用一个简单的分隔符作为引用即

useDelimiter("\"")并使用

lineScanner.next(),我得到的标题是

TURN: Washington's Spies (TV Series 2014– ) - IMDb

这是我通过控制台获得的内容以及我在设置JLabel文本时看到的内容。我想要的是

TURN: Washington's Spies (TV Series 2014– ) - IMDb

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

之后的TV Series 2014字符是unicode符号En dash

使用 UTF-8 编码,这是E2 80 93(十六进制)。

您的扫描仪似乎不知道他正在读取 UTF-8 编码的字符串,但认为它是 Windows-1252 编码的字符串,因此它正在读取3字符E2(â),80(€)和93(“):

  

我该如何避免这种情况?

让您的Scanner读取 UTF-8 Read utf-8 using Scanner

lineScanner = new Scanner(/*...*/, "UTF-8");