On Wed, Mar 15, 2017 at 8:19 PM, Patrick R. <patrick.rein@hpi.de> wrote:
>
> Hi everyone,
>
> I have been working on bringing http://squeaksource.com/ical/ up to speed
> for Squeak and wanted to make sure that it also works for Pharo. Therefore,
> I have created a travis build job for Squeak and Pharo
> (https://travis-ci.org/codeZeilen/ical-smalltalk/jobs/211298950) which pulls
> the source from squeaksource.com.
>
> Now the issue is that loading the package in Pharo fails with a
> GoferException wrapping a ZnInvalidUTF8 Exception. We figured that this
> might be the result of the squeaksource page delivering the page as
> iso-8859-1 as it contains special characters. Any ideas on how to get this
> to work? I do not have access to the ical repository description and I would
> like to avoid mirroring the whole repository on GitHub.


In a fresh 60437 image, in Playground evaluating...

�� Metacello new
�� �� �� ��configuration: 'ICal';
�� �� �� ��repository: 'github://codeZeilen/ical-smalltalk:master/repository';
�� �� �� ��onConflict: [:ex | ex allow];
�� �� �� ��load.
�� ==> Could not resolve: ICal-Core [ICal-Core-PaulDeBruicker.5] in /home/ben/.local/share/Pharo/images/60437-01/pharo-local/package-cache http://squeaksource.com/ical ERROR: 'GoferRepositoryError: Could not access http://squeaksource.com/ical: ZnInvalidUTF8: Illegal continuation byte for utf-8 encoding'


In a new fresh 60437 Image (i.e. empty package-cache)
�� World menu > Monticello > +Repository > squeaksource.com...
�� �� ��MCSqueaksourceRepository
�� �� �� �� location: 'http://squeaksource.com/ical'
�� �� �� �� user: ''
�� �� �� �� password: ''
�� ��==> open repository then errors "MCRepositoryError: Could not access http://squeaksource.com/ical: ZnInvalidUTF8: Illegal continuation byte for utf-8 encoding"


In Chrome, opening http://www.squeaksource.com/ical
then clicking <Versions>
and the browser's View Page Source,
I see...
�� ��<?xml version="1.0" encoding="iso-8859-1"?>

Googling: zinc iso-8859-1
finds... http://forum.world.st/Problem-using-Zinc-in-Pharo-4-Moose-5-1-td4825329.html
but "ZnByteEncoder iso88591"
errors with "KeyNotFound: key 'iso88591' not found in Dictionary"
and inspecting "ZnByteEncoder byteTextConverters keys sorted"
confirms this key is missing��(@Sven, I'm curious why was this removed? )


Now https://en.wikipedia.org/wiki/ISO/IEC_8859-1
indicates IBM819 is an alias
and " ZnByteEncoder newForEncoding: 'ibm819' "
works okay

So in��MCHttpRepository>>#loadAllFileNames
changing...
�� �� �� �� ��queryAt: 'C' put: 'M;O=D' ;
�� �� �� �� ��get.
to...
�� �� �� �� ��queryAt: 'C' put: 'M;O=D' .
�� �� �� �� ��ZnDefaultCharacterEncoder��
�� �� �� �� �� �� �� value: (ZnByteEncoder newForEncoding: 'ibm819')
�� �� �� �� �� �� �� during: [client get].

Then from Monticello opening the previously defined http://squeaksource.com/ical
works!!


Now I was hoping that reverting #loadAllFileNames
and in Playground doing...
�� �� converters := ZnByteEncoder byteTextConverters.
�� �� converters at: 'iso-8859-1' put: (converters��at: 'ibm819').
might alleviate the problem, but no luck.


Anyone know a better way to deal with this that hardcoding the encoding into #loadAllFileNames?

cheers -ben