Java-使用扫描仪读取字符串,给我奇怪的字符

Java-使用扫描仪读取字符串,给我奇怪的字符,java,java.util.scanner,Java,Java.util.scanner,如何保存字符串: 在对标题进行一点解析之后,只需对引号使用一个简单的分隔符,即 使用分隔符(\”)并使用 lineScanner.next(),我得到的标题是 TURN:Washington's Spies(电视连续剧2014–欧元)–IMDb 这是我通过控制台得到的,也是我在设置JLabel文本时看到的 TURN:Washington's Spies(电视剧2014-)-IMDb 如何避免这种情况?2014年电视剧之后的-字符是unicode符号 用UTF-8编码这是E28093(十六进制)

如何保存字符串:

在对标题进行一点解析之后,只需对引号使用一个简单的分隔符,即

使用分隔符(\”)
并使用

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

TURN:Washington's Spies(电视连续剧2014–欧元)–IMDb

这是我通过控制台得到的,也是我在设置JLabel文本时看到的

TURN:Washington's Spies(电视剧2014-)-IMDb


如何避免这种情况?

2014年电视剧
之后的
-
字符是unicode符号

用UTF-8编码这是E28093(十六进制)

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

我如何避免这种情况

让您的
扫描仪
读取UTF-8:


请发布您的代码。您可能应该使用XML解析器来执行复杂(甚至是中等复杂)的操作从HTML字符串中提取操作。看起来您在错误的字符集中解析它-我猜它是保存为UTF-8,而您正在加载为ISO-8859-1。请说明如何创建
lineScanner
。我认为这个问题不需要任何改进
lineScanner = new Scanner(/*...*/, "UTF-8");