2012-04-24 7 views
4

java에서 HTML 파일을 구문 분석/변환하기 위해 HtmlCleaner 라이브러리를 사용하고 있습니다.HTMLCLEANER가 스페인어 문자를 처리합니다.

그것은 그와 같은 스페인어 문자를 처리 할 수없는 것 같다 'ÁáÉéÍíÑñÓóÚúÜü'

나는이 또는 다른 솔루션을 처리하기위한 HtmlCleaner에서 설정할 수있는 모든 속성이 있습니까? 여기에 내가 그것을 호출하는 데 사용하고 코드는 다음과 같습니다

CleanerProperties props = new CleanerProperties(); 
props.setRecognizeUnicodeChars(true); 
java.io.File file = new java.io.File("C:\\example.html"); 
TagNode tagNode = new HtmlCleaner(props).clean(file); 
+0

UTF-8을 사용하도록 인코딩을 설정하는 방법이 있습니까? – Makoto

+0

파일에 쓸 때 UTF-8을 사용하고 있습니다. 'new PrettyHtmlSerializer (props) .writeToFile (tagNode, filePath, "utf-8");' – choop

+0

HTML 파일이 실제로 UTF-8로 인코딩 되었습니까? –

답변

2

HtmlCleaner는 지정된 경우를 제외하고는 JVM에서 읽은 기본 문자 집합을 사용합니다. Windows에서 이것은 UTF-8이 아닌 Cp1512가 될 것이며 아마도 잘못 될 것입니다.

당신도

  • 가에 (캐릭터가

    TagNode tagNode = new HtmlCleaner(props).clean(file, "UTF-8"); 
    

    을 설정 당신이있어 경우 구글 구아바를 받아들이는 HtmlCleaner.clean() 오버로드를 사용하여 JVM의 시작 라인에 -Dfile.encoding=UTF-8을 지정할 수 있습니다 프로젝트의 경우 상수로 Charsets.UTF_8을 사용할 수 있습니다.

  • 은 올바른 문자 세트로 이미 구성한 InputStreamReader를 허용하는 HtmlCleaner.clean() 오버로드를 사용합니다.
+0

해결했습니다. – choop

0

당신은 UTF-16UTF-8을 변경할 수 있습니다.

최대 문자 수를 지원합니다.

+0

그러나 그들은 단지 인코딩 일 뿐이며 지원되는 문자의 수는 변하지 않을 것입니다. 이것은 HtmlCleaner가 잘못된 인코딩으로 파일을 읽고 UTF-16이 올바르게 감지 된 BOM과 함께 생성되지만 도움이 될 것입니다. – Rup

+0

@Azhar는 UTF-16이 UTF-8보다 더 많은 문자를 가지고 있다고 생각하는 이유에 대해 설명 할 수 있습니까? –

+0

@MrLister .. 처음 HTML을 코딩하기 시작했을 때 .. 지원 문자에 문제가있었습니다 ... 그래서 선배님이 도와 주셨습니다 :) .. 그는 UTF-16이 더 많은 문자를 지원한다고 말했습니다. 나 또는 내 수석이 잘못되어 있으면 나를 바로 잡으십시오. – Azhar

관련 문제