2016-07-05 106 views
1

如何串保存:爪哇 - 读字符串扫描仪给我奇怪的字符

<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

如何避免这种情况?

+0

请发表您的代码。 –

+2

您可能应该使用XML解析器从HTML字符串中进行复杂(甚至是中度复杂)的提取操作。 –

+6

它看起来像你解析它在错误的字符集 - 我会*猜*像它被保存为UTF-8,并加载它为ISO-8859-1。请显示您如何创建'lineScanner'。 –

回答

1

字符TV Series 2014后是Unicode符号En dash

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

好像你的扫描程序不知道他正在读的UTF-8编码字符串,但认为它是一个的Windows 1252编码之一,所以它读取3个字符E2(A),80(€ )和93(“):

我该如何避免这种情况?

让你的ScannerUTF-8Read utf-8 using Scanner

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