If you don't have the following line in your html head, it definitely a source 
of problem:
 
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

I never tried wo5* with other languages. Wondering who have any experiences 
with utf-8, say Chinese or Russian?


From: David  
  To: WebObjects-Dev Mailing List List 
  Sent: Wednesday, November 11, 2009 5:17 AM
  Subject: UTF8 and ContentEncoding


  Hi all,


  I have the following situation:


  A database with all tables specified to default to UTF8 encoding.
  Adaptor URL containing useUnicode=true&setContentEncoding=UTF8
  A record in one table that holds the € currency symbol.


  I am loading a WOComponent page to edit values etc., using a form.


  Everything was fine and one day all the € symbols started appearing as '?'.  
Clearly something changed somewhere on the server but I don't know what.  
Anyway, the €msymbols that are appearing this way are displayed by using a 
WOString.  The value it displays is from defaultCountry which is a variable of 
type COUNTRY loaded from the database and stored in the Session class.  


  € symbols that were entered on the form, when added to a display group for 
example, would appear as €.


  I've had a look around and what I found was this suggestion:


  Put this in Application class:


   public void takeValuesFromRequest(WORequest r, WOContext c) {
        r.setDefaultFormValueEncoding("UTF8");
        super.takeValuesFromRequest(r,c);
    }

    public void appendToResponse(WOResponse r, WOContext c) {
        r.setContentEncoding("UTF8");
        super.appendToResponse(r,c);
        r.setHeader("text/html;charset=utf-8", "Content-Type");
    }

  Which I did.  It helped to a certain extent.  It seemed to fix the problem 
with the form values, which now displayed correctly, but the '?' still appears 
where the value is displayed with WOString.  Then I found another suggestion:


  Put this in Application class:


    public WOResponse dispatchRequest(WORequest aRequest) {
    aRequest.setContentEncoding("UTF-8");
    WOResponse aResponse = super.dispatchRequest(aRequest);
    aResponse.setContentEncoding("UTF-8");
    return aResponse;


  Doing this solved the problem of the '?' but reverted the form values to 
display as €.


  No matter what I do, there doesn't seem to be a way to get them both to 
display correctly.  Any ideas?


  Regards,
  David.


------------------------------------------------------------------------------


  _______________________________________________
  Do not post admin requests to the list. They will be ignored.
  Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
  Help/Unsubscribe/Update your Subscription:
  http://lists.apple.com/mailman/options/webobjects-dev/elim%40pdtnetworks.net

  This email sent to e...@pdtnetworks.net


------------------------------------------------------------------------------



  No virus found in this incoming message.
  Checked by AVG - www.avg.com 
  Version: 9.0.707 / Virus Database: 270.14.65/2502 - Release Date: 11/14/09 
00:43:00
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to