2010-05-04 11 views
6

내가 http://meetup.com/에서 캘린더 피드를 읽을려고하지만 iCal4j는 X-ORIGINAL-URL에서 줄 바꿈을 처리 할 수없는 속성 것 같다 :iCal4j와 줄 바꿈

X-ORIGINAL-URL:http://www.meetup.com/chicagoscala/calendar/ical/The+Chicago 
-Area+Scala+Enthusiasts+(CASE)+Meetup+Group/ 

:이 줄에 실패 이 예외는 다음과 같습니다.

net.fortuna.ical4j.data.ParserException: Error at line 7: Illegal property [ -AREA+SCALA+ENTHUSIASTS+(CASE)+MEETUP+GROUP/] 
    at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:133) 
    at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:174) 
    at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:155) 

제가 버그를 신청했지만 아직 답변을 얻지 못했습니다. 이것은 알려진 문제입니까?

00000060 4e 0a 58 2d 4f 52 49 47 49 4e 41 4c 2d 55 52 4c |N.X-ORIGINAL-URL| 
00000070 3a 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 65 65 74 |:http://www.meet| 
00000080 75 70 2e 63 6f 6d 2f 63 68 69 63 61 67 6f 73 63 |up.com/chicagosc| 
00000090 61 6c 61 2f 63 61 6c 65 6e 64 61 72 2f 69 63 61 |ala/calendar/ica| 
000000a0 6c 2f 54 68 65 2b 43 68 69 63 61 67 6f 0a 20 2d |l/The+Chicago. -| 
000000b0 41 72 65 61 2b 53 63 61 6c 61 2b 45 6e 74 68 75 |Area+Scala+Enthu| 
000000c0 73 69 61 73 74 73 2b 28 43 41 53 45 29 2b 4d 65 |siasts+(CASE)+Me| 

답변

5

좋아, UnfoldingReader를 전달하는 것은 자신이 트릭을 할 것 같다 :

BTW이 해당 파일의 16 진 덤프의 조각이다. 버퍼 크기를 충분히 크게 설정하면 값을 올바르게 복원 할 수 있습니다. 이상한.

reader = new UnfoldingReader(new InputStreamReader(uri.toURL().openStream()), 3000); 
return new CalendarBuilder().build(reader); 

은 또한이에 ical4j.properties을 설정

ical4j.unfolding.relaxed=true 

는 엄청난 차이를 만들어 확실하지 않음 경우, 그러나 적어도 그것을 작동합니다.

+0

나를 위해 일했지만 Java 코드에서 propertie를 설정했습니다. CompatibilityHints.setHintEnabled (CompatibilityHints.KEY_RELAXED_UNFOLDING, true); – Julien