Re: [SOLVED by hack]: char encoding in DirectAction requests?
Will Scheidegger <[email protected]>
| Newsgroups | gmane.comp.web.webobjects.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Kai
Thanks for your help. I would assume that
WOMessage.setDefaultURLEncoding(_NSUtilities.UTF8StringEncoding);
would probably do the same as you're doing with the private API, right?
- Will
On 22.03.2006, at 15:30, Kai S. Wong wrote:
> Hi Will,
>
> In your Application constructor, you can initialize with the code
> below to ensure your URL properly encoded as well.
>
>
> com.webobjects.appserver._private.WOURLEncoder.WO_URL_ENCODING =
> "UTF8";
>
>
> Regards,
> Kai
>
>
> On 22-Mar-06, at 1:38 PM, Will Scheidegger wrote:
>
>> When I had a closer look at the request object that was passed to
>> my DirectAction method I found out that its encoding was always
>> set to ISO... Now I'm manually forcing it to use UTF8 on every
>> request:
>> request().setDefaultFormValueEncoding
>> (_NSUtilities.UTF8StringEncoding);
>>
>> Isn't there a place where this could be set "once and for all"?
>>
>> -Will
>>
>> On 22.03.2006, at 11:16, Will Scheidegger wrote:
>>
>>> Once again I'm struggling with character encoding. My app is
>>> supposed to encode everything in UTF-8, so I got the following in
>>> my code:
>>>
>>> In "Application":
>>> - WORequest.setDefaultURLEncoding("UTF-8");
>>> - public void takeValuesFromRequest(WORequest aRequest,
>>> WOContext aContext) {
>>> aRequest.setDefaultFormValueEncoding
>>> ( _NSUtilities.UTF8StringEncoding );
>>> super.takeValuesFromRequest(aRequest, aContext);
>>> }
>>> - public WOResponse createResponseInContext(WOContext context) {
>>> WOResponse response = super.createResponseInContext(context);
>>> response.setContentEncoding( _NSUtilities.UTF8StringEncoding);
>>> return response;
>>> }
>>> - public void appendToResponse(WOResponse response, WOContext
>>> context) {
>>> super.appendToResponse(response, context);
>>> if (_NSUtilities.UTF8StringEncoding.equals
>>> (response.contentEncoding())) {
>>> response.setHeader("text/html; charset=UTF-8", "Content-Type");
>>> }
>>> }
>>>
>>> In "Session":
>>> - public void takeValuesFromRequest(WORequest aRequest,
>>> WOContext aContext) {
>>> aRequest.setDefaultFormValueEncoding
>>> ( _NSUtilities.UTF8StringEncoding );
>>> super.takeValuesFromRequest(aRequest, aContext);
>>> }
>>>
>>> Even in the html:
>>> - <meta http-equiv="Content-Type" content="text/html;
>>> charset=utf-8">
>>>
>>> Still, when I submit the for using a direct action, I'm getting
>>> crippled data when the user entered non-ascii characters. Needles
>>> to say that everything works fine (including chinese and japanese
>>> characters) when the data is submitted using a regular form and a
>>> component action.
>>>
>>> I've searched the web and looked at "Practical WebObjects"
>>> chapter 8 but did not find an answer yet.
>>>
>>> -Will
>>> _______________________________________________
>>> WebObjects-dev mailing list
>>> [email protected]
>>> http://www.omnigroup.com/mailman/listinfo/webobjects-dev
>>
>> _______________________________________________
>> WebObjects-dev mailing list
>> [email protected]
>> http://www.omnigroup.com/mailman/listinfo/webobjects-dev
>>
>
_______________________________________________
WebObjects-dev mailing list
[email protected]
http://www.omnigroup.com/mailman/listinfo/webobjects-dev