I가 다음과 같은 구조화 UTF8 파일과 다음 문제 :자바 구문 분석 UTF8
FIELD1§FIELD2§FIELD3§FIELD4
그것을 성문화 A7
을 사용하는 파일의 16 진수 값을 보면 §
. 따라서이 코드 목록에 따르면 UTF8이어야하지만 A7
>7F
이므로 1 바이트가 §
을 코드화하는 데 충분하지 않아야 이상합니다.
BufferedReader
를 사용하여 시도 :
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(input), utf8))
하지만
SmartTokenizer st = new SmartTokenizer(toTokenize, "§")
합니다 (SmartTokenizer
으로 문자열을 토큰 화하려고 할 때 StringTokenizer
의 수정 된 버전을하다 빈 토큰을 유지함)
분리가 발생하지 않으며 문자열을 인쇄하려고 시도하면
그래서 파일에 사용FIELD1? FIELD2? FIELD3? ...
§
은 구분 기호로 지정된 것과 다른, 그리고 너무 그것을 밖으로 인쇄 할 수 없습니다.
그래서 여기에 무슨 문제가 있습니까? 원래 파일은 §
을 저장하기 위해 2 바이트를 사용해야합니까?
예, 저는 표준 사이를 변환하려고 시도한 후에 잘못된 방향을 조사하고있었습니다. 단지 BufferedReader에게 ISO-8859-1 charset에 따라 읽도록 지시했습니다. 감사합니다! – Jack