Shelon,

I got another idea to check of the string is utf-8 already not checking the cherrypy's version, see the below:

try:
    res.decode('utf-8')
    res.encode("utf-8")
    return res;
 except UnicodeDecodeError:
    return res.encode("utf-8")


2014/3/3 17:50, Sheldon:
Now there's a issue:
https://github.com/kimchi-project/kimchi/issues/333

The reason of this issue is because high level cherrpy version make some change about set_response.

The high level cherrpy encode the unicode error message by itself.

So the kimchi do not encode the unicode error message any more.

It is right, the cherrpy should encode the unicode error message.

Now we can require the cherrypy version to solve this problem.

we can also check the cherrypy version in kimchi code as follow in order to avoid to require the cherrypy version.

like:
if cherrypy.__version__ << 3.2.5:
return res
else:
return res.encode("utf-8")