2016-07-05 130 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");