2012-05-06 3 views
0

글쎄, 필자는 필자의 텍스트 데이터를 채워서 utf-8로 저장할 필요가있는 간단한 텍스트 파일을 가지고있다 ...java utf-8 텍스트 파일 읽기 버그?

음, 나는 단지 메모장으로 일반 텍스트 파일을 썼다. 와 UTF-8

와 TXT로 저장하지만 난 앞에 이상한 것은 어떤 종류의를 받고있는 것으로 보인다 : enter image description here

그것도 보통 다른 곳 붙여 넣을 수 없습니다 이상한 점의 일종입니다.

FileInputStream fstream = new FileInputStream(fileName); 
     // Get the object of DataInputStream 
     DataInputStream in = new DataInputStream(fstream); 
     BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
     String values; 

     //Read File Line By Line 

     System.out.println("Generating queries from: " + fileName); 
     String fields = br.readLine(); 
     System.out.println("The fields are: " + fields); 
:

코드 부분입니다 ... 나는 어쩌면 첫 번째 심볼을 제거 시도 할 수 있습니다,하지만 난 그게 항상 올 것이다 경우 잘 모르겠어요 외에 실제 솔루션 생각하지 않습니다

누구나이 문제를 해결하고 해결책을 알고 있습니까?

미리 감사드립니다.

+0

죄송합니다. 라인에 빨간색으로 표시해야합니다. 필드는 다음과 같습니다. XLanguage_code ... 여기에서 X입니다. –

+0

그냥 화면 아티팩트가 아닌가요? 코드에 영향을 미치지 않고 방금 남겨둔 것이 있습니까? – Brendan

+1

'fields.codePointAt (0)'의 값은 무엇입니까? –

답변

3

아마도 Unicode Byte Order Mark (BOM) 일 것입니다. 일부 텍스트 편집기 (Windows)는 BOM이있는 UTF-8 텍스트 파일을 시작하여 유니 코드임을 표시합니다.

Java에서이 문제를 처리해야하는 경우 파일에서 읽는 첫 번째 유니 코드 코드 포인트가 0xffef인지 확인한 다음 제거하십시오.

+1

동의합니다. Utf-8은 바이트 순서와 무관하지만 Microsoft는 파일이 utf-8이라는 표시로 추가합니다. https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 – Bill

+1

** ** 분명히 BOM입니다. http://stackoverflow.com/questions/10467241/java-utf-8-text-file-reading -bug # comment13520566_10467241 ('0d65279 = 0xFEFF') –