[Seaside-dev] Encoding issues? Entering 'euro sign' into a text input breaks render

John Thornborrow john at pinesoft.co.uk
Wed Oct 17 08:28:55 UTC 2007


I have 3.10.2 vm, Windows XP (32Bit)

Seaside 2.8beta from SqueakMap, with "Yes" to all options (Kom,
Scriptaculous, RSS) Just reinstalled to confirm.

KomHttpServer-pmm.2 - yes.
Seaside2.8a1-pmm.476 - yes

/seaside/tests/alltests (encoding) multipart fails for Euro symbol, and
other unicode chars. (prime, left side quote, etc) Same error(s) as before.

The sample code I provided in my first mail also breaks with the same
result.

Thanks and regards,
John.

Philippe Marschall wrote:
> 2007/10/16, John Thornborrow <john at pinesoft.co.uk>:
>> So what am I to use instead? I've not seen anything about an alternative.
>>
>> I used SeasideInstaller - I always did, yet it left me with what I have
>> been having trouble with today - the encoding test failing, and Seaside
>> rendering breaking on any "special" character. I only installed other
>> versions of KomHttpServer in a bid to try and fix this problem.
> 
> Ok, this is different then, you have my full attention. So lets recap:
> - you use Squeak 3.9, correct?
> - you use SeasideInstaller from SqueakMap, which version, 2.8beta?
> - you use WAKom
> - /seaside/tests/alltests the "Encoding" tests fails?
> Anything else? I just did all this for Windows XP and a 3.10.6 VM and
> the tests work. Can you confirm that you have KomHttpSever-pmm.2 and
> Seaside2.8a1-pmm.476? This is configuration that is really supposed to
> work. If this really doesn't work for you then I need your image
> because otherwise I'm not able to reproduce this bug.
> 
> Cheers
> Philippe
> 
>> Regards,
>> John
>>
>> Philippe Marschall wrote:
>>> 2007/10/16, John Thornborrow <john at pinesoft.co.uk>:
>>>> I orignally had the Package Universe version of KomHttpServer (6.2) and
>>>> received the same results - the test does not pass.
>>> Then you did use WAKom in a Squeak 3.9 image. As noted several times
>>> this is not supported. This is a bug in KomHttpServer. We contacted
>>> the maintainer and sent him patches (2 methods). He's too busy.
>>>
>>>> The same is also true for many other characters, unicode 2000+ also
>>>> cause the test and Seaside to fail rendering.
>>>>
>>>> This is proving to be havoc for my clients who are copying from Word
>>>> documents made by publishers who make use of left/right-side quotes,
>>>> primes etc. in their documents and wish to publish them on the web in
>>>> HTML form. I agree, this is not your problem, it is mine, but surely you
>>>> must be able to see that it is something to consider, rather than just
>>>> sticking to the still-not-yet-fully-supported-by-browsers (X)HTML standards?
>>> XHTML has _nothing_ at all to do with it. Just that the specified and
>>> actual encoding don't match. You want options? I'll give you options.
>>> They all work with all the languages you get on
>>> http://www.columbia.edu/kermit/utf8.html, not only the euro symbol.
>>>
>>> - use the attached KomHttpServer version. This is the one from the
>>> SeasideInstaller. This makes WAKom and WAKomEncoded work on Squeak 3.9
>>> - use http://squeak.krampe.se/KomHttpServer-gk.14.mcz this makes
>>> WAKomEncoded39 work on Squeak 3.9
>>>
>>> Anything beyond that I don't care.
>>>
>>> Cheers
>>> Philippe
>>>
>>>> Regards,
>>>> John
>>>>
>>>> Philippe Marschall wrote:
>>>>> 2007/10/16, John Thornborrow <john at pinesoft.co.uk>:
>>>>>> The /seaside/tests/alltests for encoding doesn't pass - it fails with:
>>>>>>
>>>>>> "Internal Error
>>>>>>
>>>>>> MessageNotUnderstood: UndefinedObject>>asCharacter
>>>>>>
>>>>>> RWBinaryOrTextStream>>nextPut:
>>>>>> WAHtmlEncoder(WAEncoder)>>nextPutAll:
>>>>>> ByteString(String)>>encodeOn:
>>>>>> WAHtmlStreamDocument>>print:
>>>>>> WARenderCanvas(WAHtmlCanvas)>>text:
>>>>>> ByteString(String)>>renderOn:
>>>>>> [] in WAGenericTag(WATagBrush)>>with: {[self before. anObject renderOn:
>>>>>> canvas. self after]}
>>>>>>
>>>>>> etc.."
>>>>>>
>>>>>> I've got the lastest KomHttpServer from squeaksource.com and I'm not
>>>>>> sure what version WAKom* is - I thought this was part of the seaside
>>>>>> package?
>>>>> No, we only support the official one on SqueakMap and the one from
>>>>> netstyle.ch which comes with the SeasideInstaller.
>>>>>
>>>>>> I've made a work around, and that is to include:
>>>>> Use one of the supported KomHttpServers. They should pass the
>>>>> /seaside/tests/alltests at least in ecoding mode.
>>>>>
>>>>> If you use an other version of Kom we don't care. We're sorry but
>>>>> already supporting these is enough of a mess.
>>>>>
>>>>> Cheers
>>>>> Philippe
>>>>>
>>>>>> aCharacter = (Character value: 1069555884) ifTrue: [^ aStream
>>>>>> nextPutAll: '&euro;' ] .
>>>>>>
>>>>>> to the list of characters in WAHtmlEncoder class>>encode:on: but given
>>>>>> the ourcome of the last time I made changes to this method, it is not
>>>>>> the preferred/accepted solution.
>>>>>>
>>>>>> Regards,
>>>>>> John
>>>>>>
>>>>>> Philippe Marschall wrote:
>>>>>>> 2007/10/16, John Thornborrow <john at pinesoft.co.uk>:
>>>>>>>> Hello all,
>>>>>>>>
>>>>>>>> I've discussed this briefly before on the list, following my
>>>>>>>> contribution regarding encoding more characters than what the (X)HTML
>>>>>>>> spec defines - but did not have an example at the time.
>>>>>>>>
>>>>>>>> However, I have just stumbled upon a significant problem which I wanted
>>>>>>>> to raise as an issue to the dev-list; that is that Seasides rendering
>>>>>>>> does not like the Euro-symbol.
>>>>>>>>
>>>>>>>> The simplest example:
>>>>>>>>
>>>>>>>> renderContentOn: html
>>>>>>>>   html form with: [
>>>>>>>>     html textInput callback: [ :x | text := x ].
>>>>>>>>     html paragraph with: text.
>>>>>>>>     html submitButton
>>>>>>>>   ]
>>>>>>>>
>>>>>>>> On the form, enter a Euro symbol (ALT+0128 on Windows) in the text box
>>>>>>>> and submit.
>>>>>>>>
>>>>>>>> After submitting, it is very obvious that there is a problem (the screen
>>>>>>>> will be filled with characters that cannot be rendered.)
>>>>>>>>
>>>>>>>> Just incase it is something I am doing wrong, I have attached a file-out
>>>>>>>> of the example component. If anyone could confirm this is a problem/bug
>>>>>>>> then I shall submit a bug-report, providing it is not already reported :).
>>>>>>>>
>>>>>>>> However, I've also noticed that the WAEncoder>>initializeBMP does not
>>>>>>>> reach the range necessary to encode the euro (Character value: 1069555884)
>>>>>>>>
>>>>>>>> P.S. Tested with the latest version available in Monticello as of today,
>>>>>>>> and this is on Squeak 32bit 3.10 vm on Windows platform.
>>>>>>> What combination of WAKom* and KomHttpServer do you run?
>>>>>>> WAEncodingTest under /seaside/test/alltests should test this exact
>>>>>>> scenario and run.
>>>>>>>
>>>>>>> Cheers
>>>>>>> Philippe
>>>>>>>
>>>>>>>> Regards,
>>>>>>>> John
>>>>>>>>
>>>>>>>>
>>>>>>>> Pinesoft Computers are registered in England, Registered number: 2914825. Registered office: 266-268 High Street, Waltham Cross, Herts, EN8 7EA
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> This message has been scanned for viruses by BlackSpider MailControl - www.blackspider.com
>>>>>>>>
>>>>>>>>
>>>>>>>> 'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 16 October 2007 at 11:50:34 am'!
>>>>>>>> WAComponent subclass: #BrokenEuro
>>>>>>>>         instanceVariableNames: 'text'
>>>>>>>>         classVariableNames: ''
>>>>>>>>         poolDictionaries: ''
>>>>>>>>         category: 'MyStuff'!
>>>>>>>>
>>>>>>>> !BrokenEuro methodsFor: 'rendering' stamp: 'jmt 10/16/2007 10:58'!
>>>>>>>> renderContentOn: html
>>>>>>>>         html form with: [
>>>>>>>>                 html textInput callback: [ :x | text := x ].
>>>>>>>>                 html paragraph with: text.
>>>>>>>>                 html submitButton
>>>>>>>>         ]! !
>>>>>>>>
>>>>>>>> "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
>>>>>>>>
>>>>>>>> BrokenEuro class
>>>>>>>>         instanceVariableNames: ''!
>>>>>>>>
>>>>>>>> !BrokenEuro class methodsFor: 'as yet unclassified' stamp: 'jmt 10/16/2007 11:49'!
>>>>>>>> canBeRoot
>>>>>>>>         ^true! !
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> seaside-dev mailing list
>>>>>>>> seaside-dev at lists.squeakfoundation.org
>>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>>>>>>>>
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> seaside-dev mailing list
>>>>>>> seaside-dev at lists.squeakfoundation.org
>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> seaside-dev mailing list
>>>>>> seaside-dev at lists.squeakfoundation.org
>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>>>>>>
>>>>> _______________________________________________
>>>>> seaside-dev mailing list
>>>>> seaside-dev at lists.squeakfoundation.org
>>>>> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>>>>>
>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>>> seaside-dev mailing list
>>>> seaside-dev at lists.squeakfoundation.org
>>>> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>>>>
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> seaside-dev mailing list
>>> seaside-dev at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>> _______________________________________________
>> seaside-dev mailing list
>> seaside-dev at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
>>
> _______________________________________________
> seaside-dev mailing list
> seaside-dev at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/seaside-dev
> 
> 
>  
> 


More information about the seaside-dev mailing list