I have a servlet which receive some parameter from the client ,then do some job.
And the parameter from the client is Chinese,so I often got some invalid characters in the servet.
For exmaple:
If I enter

```
http://localhost:8080/Servlet?q=中文&type=test

```

Then in the servlet,the parameter of 'type' is correct(test),however the parameter of 'q' is not correctly encoding,they become invalid characters that can not parsed.

However if I enter the adderss bar again,the url will changed to :

```
http://localhost:8080/Servlet?q=%D6%D0%CE%C4&type=test

```

Now my servlet will get the right parameter of 'q'.

What is the problem?
--------------------

**`UPDATE`**

BTW,it words well when I send the form with post. 
WHen I send them in the ajax,for example: 

```
url="http://..q='中文',
xmlhttp.open("POST",url,true); 

```

Then the server side also get the invalid characters. 

It seems that just when the Chinese character are encoded like %xx,the server side can get the right result. 

That's to say `http://.../q=中文` does not work,
`http://.../q=%D6%D0%CE%C4` work. 

But why "`http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&q=%E4%B8%AD%E6%96%87&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&aqi=&aql=&oq=&gs_rfai=`" work？
![alt text](https://i.stack.imgur.com/PKkIw.jpg)