2012-05-09 2 views
0

데이터 테이블에로드되는 필드를 추출하기 위해 텍스트 파일을 구문 분석하는 Java 응용 프로그램을 만들었습니다. 테이블에서 특수 문자 (예 : Â 등)를 사용할 수없는 예외 처리가 발견되었습니다.자바에서 특수 문자를 제거하기위한 전략 제안

이러한 문자는 입력 파일에 공백으로 표시되지만 Java에서는이를 해석합니다. 나는 그것이 다르게 해석되는 문자 코드라고 생각한다.

내 질문은 : 이러한 문자를 필터링하기 위해 Java가보고있는 목록을 생성 할 수있는 방법이 있습니까? CHAR와 문자 코드를 인쇄하고 가능하다면 문자 ~ ~ (ASCII, ANSI, UTF-8 등)을 설정하려고합니다. 그로부터, 나는 결말 파일에서 캐릭터의 공간을 대신 할 수 있었고 나의 문제를 해결할 수 있었다.

내가보기 싫은 간단한 해결책이 있습니까?

+1

올바른 해결책은 데이터베이스에서 이러한 문자를 처리 할 수있게하는 것입니다. – Jayan

+1

'특수'문자를 필터링하지 마십시오. 그 (것)들을 지키고 제대로, 끝에서 끝까지 특성 암호화를 취급하는 것을 배우십시오. – artbristol

+1

먼저 UTF-8 데이터를 올바르게 읽었습니까? –

답변

1

문자 집합을 교차 시키거나 입력 파일에 일종의 제어 문자 시퀀스가있는 것처럼 들립니다. 당신은 당신의 노력을 그것의 측면에 집중시켜야하고 당신이 적절한 성격의 세트에서 일하고 있는지 확인해야합니다. 내가 파일의 문자 목록을 롤업한다고 생각할 수있는 유일한 방법은 배열이고 파일을 반복하는 것입니다.

당신이 정말로, 모든 물건을 제거 스레드

Regular expression for excluding special characters

방법 정규식 흰색과 블랙리스트 문자가 설명을 체크 아웃 할 경우

.

+0

문자 집합에 대한 아이디어가없는 파일을 받았습니다. spec 문자를 허용하는 것이 좋겠지 만, 내가해야 할 일을 감안할 때 ... 배열을 계획했다. (내 데이터는 이미 파싱을하고 있기 때문에 줄 단위로 바이트가있다.) , 링크는 필터를 코딩하는 방법에 대한 정보에 대단히 도움이됩니다. 나는 블랙리스트보다는 화이트리스트를 작성하는 것을 정말로 좋아한다. 감사! – dwwilson66

1

UTF8라고 해독 해보십시오.

public static byte[] stringToByteArray(String s) 
    throws UnsupportedEncodingException { 
    return s.getBytes("UTF-8"); 
} 

또는 "iso-8859-1"과 같이 다른 문자를 문자열로 변환하여 인쇄 해보십시오.

관련 문제