getBytes() will use the default encoding
[System.getProperty("file.encoding");]
if the default encoding is not UTF-8 in your example, you are trying to
construct a utf-8 string from a non utf-8 byte array.

Try this:
utfStr=new String("滕训华".getBytes("UTF-8"),"UTF-8");

Using chinese characters directly in you java code may be seen as bad
practice. You could instead store them in a property file or similar.
Alternatively you could use the unicode representation in your java code
"\u..."

Cheers,
Lance.

2008/8/14 滕训华 <[EMAIL PROTECTED]>

>
> Hi,Sven:
>        I use your example code in my project,but when I return Chinese to
> javascript function and use alert to display it.it can not display
> normally,
> how can I slove this problem,thanks.
>
> My code:
>
>        TextStreamResponse onChange(TblCustomerInfo changedCustomer){
>        String utfStr="";
>        try{
>                utfStr=new String("滕训华".getBytes(),"UTF-8");
>        }
>        catch(UnsupportedEncodingException e){
>
>        }
>        return new  TextStreamResponse("text/html",utfStr);
>
>    }
>
> My javascript code:
>
>                function customerChangeEvent(response){
>
>                        alert(response);
>
>                }
> -----邮件原件-----
> 发件人: Sven Homburg [mailto:[EMAIL PROTECTED]
> 发送时间: 2008年4月25日 2:54
> 收件人: Tapestry users
> 主题: Re: T5: Select component + onchange()
>
> here some sample code sequences
>
> your page class (simplified):
>
> @Component(parameters={"event=change"
> "onCompleteCallback=onSelect1Changed"})
> @Mixins("t5components/OnEvent")
> private Select _select1
>
> @Component
> private Select _select2
>
> @OnEvent(component = "select1", value = "change")
> JSONObject select1ElementChanged(String value)
> {
> JSONObject json = new JSONObject();
> json.put("result", new JSONArray("[['a', 'value a'], ['b', 'value b'],
> ['c',
> 'value c'], ['d', 'value d']]"));
> return json;
> }
>
>
> your page tml (simplified):
>
> <select t:id="select1">
> <option value="1">first value</option>
> </select>
>
> <select t:id="select2">
> </select>
>
> <script type="text/javascript">
> function onSelect1Changed(response)
> {
> var json = response.evalJSON();
> var array = $A(json.result)
>
> array.each(function(item){
>
> // create new option for select tag "select2" and fill value attribute with
> "item[0]"
> // and fill option.innerText with "item[1]"
>
> })
> }
> </script>
>
>
>
> 2008/4/24, Marcelo Lotif <[EMAIL PROTECTED]>:
> >
> > Yeah, i know this, but none of these responses suit to my needs (maybe a
> > Page response, but this will force a reload)... i tried to return a block
> > with the part of the code that i was trying to change, but i had no
> success
> >
> > And i don't have the enough knowledge of the JSON api and javascript...
> >
> > So i'm using the onchange='this.form.submit()'...
> >
> > =)
> >
> >
> > 2008/4/24 Sven Homburg <[EMAIL PROTECTED]>:
> >
> > > the JSONObject/JSONArray response too
> > >
> > > 2008/4/24, Sven Homburg <[EMAIL PROTECTED]>:
> > > >
> > > > the return type is not limited to StreamResponse.
> > > > all you can respond all that tapestry allowes here
> > > >
> http://tapestry.apache.org/tapestry5/tapestry-core/guide/pagenav.html
> > > > its up to you
> > > >
> > > > 2008/4/24, Marcelo Lotif <[EMAIL PROTECTED]>:
> > > >>
> > > >> I had the same issue as Leon some days ago (and this seems to be a
> > very
> > > >> common issue), and i tried your component. It's very good, with some
> > > ajax,
> > > >> but the return type is a little bit limited for what i was trying to
> > > >> achieve(update a combo with information from another combo, which
> has
> > > your
> > > >> mixin). The only way to do it was hardcoding the select in my
> java(or
> > > >> javascript, whatever), that was too creepy for me.
> > > >>
> > > >> My questions:
> > > >> 1 - Is there any way of change my page data with something more
> > > elaborate
> > > >> than TextStreamResponse?
> > > >> 1 - Is there any efforts on adding some similar behavior to future
> > > >> releases?
> > > >>
> > > >> Thank you!
> > > >>
> > > >> 2008/4/24 Sven Homburg <[EMAIL PROTECTED]>:
> > > >>
> > > >>
> > > >> > try this
> > > >> >
> > > >> >
> > > >>
> > >
> >
>
> http://87.193.218.134:8080/t5components/t5c-commons/ref/org/apache/tapestry/
> commons/mixins/OnEvent.html<http://87.193.218.134:8080/t5components/t5c-commons/ref/org/apache/tapestry/commons/mixins/OnEvent.html>
> > > >> >
> > > >> > 2008/4/24, Leon Derks <[EMAIL PROTECTED]>:
> > > >> > >
> > > >> > > Hello
> > > >> > >
> > > >> > > Is it possible to catch the onChange event from a select
> component
> > > in
> > > >> the
> > > >> > > java  page?
> > > >> > >
> > > >> > > I would expect something like: onChangeFromSelect(long id)
> {....}
> > > >> > >
> > > >> > > Because I want to update information on my page, based on the
> > value
> > > >> that
> > > >> > is
> > > >> > > selected.
> > > >> > >
> > > >> > > How can I do that?
> > > >> > >
> > > >> > > Leon
> > > >> > >
> > > >> > >
> > > >> > >
> > > ---------------------------------------------------------------------
> > > >> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > >> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >> > >
> > > >> > >
> > > >> >
> > > >> >
> > > >> > --
> > > >> > with regards
> > > >> > Sven Homburg
> > > >> > http://tapestry5-components.googlecode.com
> > > >> >
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> --
> > > >> Atenciosamente,
> > > >>
> > > >> Marcelo Lotif
> > > >>
> > > >
> > > >
> > > >
> > > > --
> > > > with regards
> > > > Sven Homburg
> > > > http://tapestry5-components.googlecode.com
> > > >
> > >
> > >
> > >
> > > --
> > > with regards
> > > Sven Homburg
> > > http://tapestry5-components.googlecode.com
> > >
> >
> >
> >
> >
> > --
> > Atenciosamente,
> >
> > Marcelo Lotif
> >
>
>
>
> --
> with regards
> Sven Homburg
> http://tapestry5-components.googlecode.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to