2015. 1. 8. 03:53

Android EUC-KR parsing 할때 유의 사항.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안녕하세요.

C#에서 쓰이던 파싱 기능들을 Android 로 변환 작업을 하고 있습니다.

막상 할려고 하니 서로 다른 형태 때문에 고생이 많네요.

Android 에서는 peek() 이란 함수가 없습니다.

그래서 Search를 좀 하니 PeekAbleStream이 있는데, 이게 믿을만한게 못된다는게 결론입니다.

실제로 디버깅 상에서 깨진 한글인데요.

실제 코드에서는 저렇게 InputStrem을 사용합니다.

생성자는 이렇게 값을 할당 합니다.

문제는 Bytes Array로 넘어가는 시점에서 한글이 깨진다는 점입니다.(참고로 euc-kr, utf-8, defaultChartSet 모두 마찬가지 입니다.)

개인적인 추정으로 byte <-> int <->char의 호환성 때문이 아닌가 싶습니다.

 

참고로 순차적으로 BufferedReader를 활용해서 순차적으로 로그를 찍은 내용입니다.

 

 

캐릭터 단위로 찍었고, Exception 발생은 아마 끝부분을 지난후에서 read()를 해서 발생하는 것 같은데요.

핵심은 캐릭터(Char) 단위로 읽는것과 int 형으로 읽는부분이 아닌가 싶습니다.

감사 합니다.

'관련자료' 카테고리의 다른 글

Android Cannot resolve constructor ‘arrayadapter’ 원인  (0) 2015.01.09
Android ListView Binding  (0) 2015.01.08
Cache Friendly Code  (0) 2014.12.26
Roslyn – Using Node Replace  (0) 2014.08.17
Roslyn Git 을 통해서 설치 & 빌드  (0) 2014.08.17