jsoup를 사용하여 다른 페이지의 html 소스 코드에서 일부 정보를 추출합니다. 대부분은 UTF-8로 인코딩되어 있습니다. 그 중 하나는 ISO-8859-1로 인코딩되어 이상한 오류가 발생합니다 (내 의견으로는).jsoup의 이상한 인코딩 동작
오류가 포함 된 페이지는 다음과 같습니다
Document doc = Jsoup.connect("http://www.gudi.ch/armbanduhr-metall-wasserdicht-1280x960-megapixels-p-560.html").userAgent("Mozilla").get();
String title = doc.getElementsByClass("products_name").first().text();
문제는 문자열 "HD Armbanduhr AUS 함유 금속의 하이픈은 다음과 같습니다 http://www.gudi.ch/armbanduhr-metall-wasserdicht-1280x960-megapixels-p-560.html
나는 다음 코드 조각 필요한 문자열을 읽어 4GB Wasserdicht 1280X960 - 5 메가 픽셀 ". öäü와 같은 일반적인 움라우트는 올바르게 읽혀집니다. 이 단일 문자는 "& # 45;"로 출력되지 않습니다. 문제를 만든다.
out.outputSettings(). charset ("ISO-8859-1")을 사용하여 (올바르게 설정된) 페이지 인코딩을 덮어 쓰려고했으나 도움이되지 않았습니다.
다음은 utf8과 iso-8859-1에서 Charset 클래스를 사용하여 문자열의 인코딩을 수동으로 변경하려고 시도했습니다. 운이 없다.
jsoup를 사용하여 html 문서를 구문 분석 한 후 올바른 문자를 얻으려는 사람에게 팁이 있습니까?
감사
흠, 그것은 UTF-8에 따라 유효한 문자 (I 생각) 여야한다 — (E2 80 (93))이다. 일단 8859-1로 읽으면 다시 변환 할 수 없습니까? UTF-8로 강제 읽을 수 있습니까? –
예. out.outputSettings(). charset ("UTF-8")로 강제로 처리 할 수 있지만 실제로 도움이되지 않습니다. 문자 코드를 표시하려고 할 때 결과는 charcode 150이며이 페이지에서 볼 수있는대로 유효합니다 (http://www.web-source.net/symbols.htm). 이것으로, 나는 char가 하이픈이나 대쉬가 아니라는 것을 깨달았습니다. 그것은 45가 될 것입니다.charcode 150 확장 된 ASCII 문자 집합 내에 있습니다. –