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

John Thornborrow john at pinesoft.co.uk
Wed Oct 17 18:03:47 UTC 2007


I've been walking-through the kom request process after halting in
HttpService>>#handleRequest: and can see that the field finalises as
unencoded string of three characters (which cannot be copy/pasted due to
obvious encoding issues)

However, it is just odd that I can challenge this with what I mentioned
before and it will convert easily. I shall discuss with my colleague
when he returns from sick leave, as this is edging me on to believe it
is a squeak encoding issue - and he has a far superiour understanding of
squeak's encoding than I. I will let you know the outcome; but in the
meantime I shall continue to look/walk through Kom.

Regards,
John.

Philippe Marschall wrote:
> 2007/10/17, John Thornborrow <john at pinesoft.co.uk>:
>> 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.
> 
> Wow, this is getting really strange, I just did the same and still can
> not reproduce:
> http://img502.imageshack.us/img502/3742/shotih6.png
> 
> You did not change something in the session or browser properties? Is
> there some way how you could build a clean image that exposes the bug
> and give it to me?
> 
> Cheers
> Philippe
> 
>> 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
>>>
>>>
>>>
>>>
>> _______________________________________________
>> 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