2013-07-30 4 views
0

페이지의 HTML 코드를 읽고 사용자에게 표시하는 라이트 앱을 만들었습니다.악센트 부호가있는 문자 : 편집 전후의 차이

NetBeans의 개발 중에는 전혀 문제가 없지만 "청결한 빌드"후에이 IDE에서 제공 한 .jar를 사용하면 악센트가 있습니다.

예를 들어, 프랑스어 단어 "renégocier"이 NetBeans에서 표시되었습니다. NetBeans의 깔끔한 빌드를 사용하면 단어가 표시됩니다. "renégocier" ...

아이디어가 있으십니까?

편집 : 교체

:

BufferedReader webData = new BufferedReader(new  InputStreamReader(con.getInputStream())); 

로 :

BufferedReader webData = new BufferedReader(new InputStreamReader(urlObject.openStream(), "UTF-8")); 
+0

어디에서 오는 문자열입니까? 소스 파일? 리소스 파일? URL에서 다운로드 하시겠습니까? 로컬 파일? – jtahlborn

+0

URL에서 오는 것입니다. HTML 코드를 읽고 그 일부를 표시합니다. – Eric

+0

코드를 보여줍니다. (당신은 틀린 문자 인코딩을 사용하여 html 바이트를 문자열로 변환 할 수 있지만, 코드 없이는 말하기 어렵다). – jtahlborn

답변

0

귀하의 코드를 사용하고

URL urlObject=null; 
URLConnection con=null; 
String inputLine; 
String codeHTML 

urlObject = new URL(UrlToVerification); 
con = urlObject.openConnection(); 
BufferedReader webData = new BufferedReader(new  InputStreamReader(con.getInputStream())); 

while ((inputLine = webData.readLine()) != null) 
{ 
    codeHTML += inputLine; // Lecture du code HTML 
} 

해결 방법이 내가 HTML 코드를 읽는 방법입니다 플랫폼의 디폴트 캐릭터 URL 내용을 읽을 때 인코딩. 대신 명시 적 문자 인코딩을 InputStreamReader에 전달해야합니다. 이것은 URL 자체에 의해 지정된 인코딩이어야합니다 (이 내용은 "Content-Type" 헤더에 포함되어야합니다). 문자 인코딩이 관련 머리글에 포함되어 있지 않으면 적절한 기본값을 선택해야합니다.

+0

니스! UTF8 인코딩의 경우 : BufferedReader webData = new BufferedReader (새 InputStreamReader (con.getInputStream())); 감사 ! – Eric

+0

@ 에릭 - 당신이 잘못 입력 했습니까? utf-8 인코딩의 경우에는'InputStreamReader (con.getInputStream(), "UTF-8")'을 원할 것입니다. – jtahlborn