Re: Bug of the ComponentContent UTF-8
Re: Bug of the ComponentContent UTF-8
- Subject: Re: Bug of the ComponentContent UTF-8
- From: Yoshihiko Mori <email@hidden>
- Date: Fri, 14 Mar 2008 01:34:05 +0900
Thank you for your helpful information.
I will try removing the encoding detection.
Thanks,
Mori
On 2008/03/13, at 3:12, Mr. Pierre Frisch wrote:
Ok I have had a look at it and what is broken is not the encoding
but the encoding detection. Remove the encoding detection and all
works correctly. The default encoding for Wo 5.4.x is UTF-8 anyway.
Pierre
--
Pierre Frisch
email@hidden
On Mar 12, 2008, at 8:40, Yoshihiko Mori wrote:
Hi Pierre,
1. version of Java:
$java -version
java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-
b05-237)
Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing)
2. version of WebObjects: 5.4.1
3. version of MacOS X: 10.5.2
4. problems:
If I set the charset name to "UTF-8" in the Main.java, I get
unexpected characters in the String01 when I input any Japanese
words in the TextField01 and click the SubmitButton01.
If I set the charset name to "UTF8", I get normal Japanese words.
When I was using WebObjects 5.3 on the MacOS X 10.4, the "UTF-8"
was not a problem.
I think that this problem is not because of the ComponentContent
considering the test which I did recently.
5. my new test code (I will send binary by another mail for you.) :
//----- Main.java
package com.hfsys.components;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WORequest;
import com.webobjects.appserver.WOResponse;
public class Main extends WOComponent {
private static final long serialVersionUID = 1L;
public String testStr01, testStr02;
public Main(WOContext context) {
super(context);
}
public WOComponent testSubmit(){
testStr02 = testStr01;
return null;
}
/** Set Japanese Encoding **/
public void takeValuesFromRequest(WORequest aRequest,WOContext
aContext)
{
aRequest.setFormValueEncodingDetectionEnabled(true);
aRequest.setDefaultFormValueEncoding("UTF8");
super.takeValuesFromRequest(aRequest,aContext);
}
public void appendToResponse(WOResponse aResponse,WOContext
aContext)
{
aResponse.setContentEncoding("UTF8");
super.appendToResponse(aResponse,aContext);
}
/** <--Set Japanese Encoding **/
}
//----- Main.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>Test</title>
</head>
<body>
Test<br/>
<webobject name="Form01">
<webobject name="TextField01"/>
<webobject name="SubmitButton01"/>
</webobject>
<webobject name="String01"/>
</body>
</html>
//----- Main.wod
Form01: WOForm {}
String01: WOString { value = testStr02; }
SubmitButton01: WOSubmitButton { action = testSubmit; value
= "保存"; }
TextField01: WOTextField { value = testStr01; }
//----- Main.woo
{
"WebObjects Release" = "WebObjects 5.0";
encoding = NSUTF8StringEncoding;
}
//----- Main.api
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wodefinitions>
<wo wocomponentcontent="false" class="Main">
</wo>
</wodefinitions>
Thanks,
Mori
On 2008/03/12, at 2:02, Mr. Pierre Frisch wrote:
What is the problem exactly? The name should be "UTF-8" with a
dash. In Java 1.4 the API changed from encoding names to charset
names. The charset name use the same convention as the Web. The
encoding names are considered legacy by Sun but should still work
for String conversion. Could give me more detail of exactly what
the problem is? and which version of Java and WebObjects?
Thank you
Pierre
--
Pierre Frisch
email@hidden
On Mar 11, 2008, at 8:59, Yoshihiko Mori wrote:
Hi Chuck,
Thank you for your advice.
This was not a bug.
I changed the character set name from "UTF-8" to "UTF8" in the
parent Component code as follows and it seems that it went well.
In the past the "UTF-8" was not a problem but it does not go well
now.
/** for UTF-8 **/
public void takeValuesFromRequest(WORequest aRequest,WOContext
aContext)
{
aRequest.setFormValueEncodingDetectionEnabled(true);
aRequest.setDefaultFormValueEncoding("UTF8");
super.takeValuesFromRequest(aRequest,aContext);
}
public void appendToResponse(WOResponse aResponse,WOContext
aContext)
{
aResponse.setContentEncoding("UTF8");
super.appendToResponse(aResponse,aContext);
}
/** **/
Thanks.
Mori
On 2008/03/12, at 0:05, Chuck Hill wrote:
Hello Mori,
On Mar 11, 2008, at 12:31 AM, Yoshihiko Mori wrote:
Dear all,
Dear developers.
I found a bug in the WOComponentContent.
It is as follows:
1. I set the Meta header in the Component as follows:
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
2. I sent a String of UTF-8 in the WOTextField in the WOForm in
the WOComponentContent in the Component.
3. I got unexpected code and I found the following log include
the context().request() log:
content-type=[application/x-www-form-urlencoded]
4. If the WOForm is not included in the WOComponentContent, I
got expected code and the log of context().request() is as
follows:
content-type=[application/x-www-form-urlencoded; charset:UTF-8]
I think this behavior that the Component in the
WOComponentContent does not get the charset of the Meta header
is a bug.
I am developing with the MacOS X 10.5 + WebObjects 5.4.1 +
WOLips 3.3.4984.
Could you fix it and give me any workaround?
Thanks.
Mori.
You can't just set the meta header, you need to tell WebObjects
to use the UTF-8 encoding everywhere. This should help:
http://wiki.objectstyle.org/confluence/display/WO/Web+Applications-Development-Localization+and+Internationalization
Chuck
--
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve
specific problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden