3585: Post a comment containing Chinese charaters to a diff in reviewboard will faill !

wdao****@gmai***** (Google Code) (Is this you? Claim this profile.)
Sept. 28, 2014
When I comment using the statement below to a diff:

"发送中文不行Cannot send any chinese characters."

I will get an error from the httpd error_log,and please see it below:

[Sun Sep 28 09:30:54 2014] [error] ERROR:root:Exception thrown for user dvadva1001 at http://192.168.10.200:8020/api/review-requests/22/reviews/10/diff-comments/
[Sun Sep 28 09:30:54 2014] [error]
[Sun Sep 28 09:30:54 2014] [error] (1366, "Incorrect string value: '\\\\xE5\\\\x8F\\\\x91\\\\xE9\\\\x80\\\\x81...' for column 'text' at row 1")
[Sun Sep 28 09:30:54 2014] [error] Traceback (most recent call last):
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/core/handlers/base.py", line 112, in get_response
[Sun Sep 28 09:30:54 2014] [error]     response = wrapped_callback(request, *callback_args, **callback_kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/views/decorators/cache.py", line 52, in _wrapped_view_func
[Sun Sep 28 09:30:54 2014] [error]     response = view_func(request, *args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/views/decorators/vary.py", line 19, in inner_func
[Sun Sep 28 09:30:54 2014] [error]     response = func(*args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/resources.py", line 494, in __call__
[Sun Sep 28 09:30:54 2014] [error]     request, method, view, api_format=api_format, *args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/resources.py", line 565, in call_method_view
[Sun Sep 28 09:30:54 2014] [error]     return view(request, *args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/resources.py", line 747, in post
[Sun Sep 28 09:30:54 2014] [error]     return self.create(*args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 117, in _call
[Sun Sep 28 09:30:54 2014] [error]     return view_func(*args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/webapi/decorators.py", line 110, in _check
[Sun Sep 28 09:30:54 2014] [error]     return view_func(*args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 117, in _call
[Sun Sep 28 09:30:54 2014] [error]     return view_func(*args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 138, in _checklogin
[Sun Sep 28 09:30:54 2014] [error]     return view_func(*args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 117, in _call
[Sun Sep 28 09:30:54 2014] [error]     return view_func(*args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 117, in _call
[Sun Sep 28 09:30:54 2014] [error]     return view_func(*args, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 287, in _validate
[Sun Sep 28 09:30:54 2014] [error]     return view_func(*args, **new_kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/webapi/resources/review_diff_comment.py", line 127, in create
[Sun Sep 28 09:30:54 2014] [error]     **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/webapi/resources/base_comment.py", line 157, in create_comment
[Sun Sep 28 09:30:54 2014] [error]     new_comment.save()
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/reviews/models/base_comment.py", line 133, in save
[Sun Sep 28 09:30:54 2014] [error]     super(BaseComment, self).save()
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/base.py", line 545, in save
[Sun Sep 28 09:30:54 2014] [error]     force_update=force_update, update_fields=update_fields)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/base.py", line 573, in save_base
[Sun Sep 28 09:30:54 2014] [error]     updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/base.py", line 654, in _save_table
[Sun Sep 28 09:30:54 2014] [error]     result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/base.py", line 687, in _do_insert
[Sun Sep 28 09:30:54 2014] [error]     using=using, raw=raw)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/manager.py", line 232, in _insert
[Sun Sep 28 09:30:54 2014] [error]     return insert_query(self.model, objs, fields, **kwargs)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/query.py", line 1514, in insert_query
[Sun Sep 28 09:30:54 2014] [error]     return query.get_compiler(using=using).execute_sql(return_id)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/sql/compiler.py", line 903, in execute_sql
[Sun Sep 28 09:30:54 2014] [error]     cursor.execute(sql, params)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/backends/util.py", line 53, in execute
[Sun Sep 28 09:30:54 2014] [error]     return self.cursor.execute(sql, params)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/utils.py", line 99, in __exit__
[Sun Sep 28 09:30:54 2014] [error]     six.reraise(dj_exc_type, dj_exc_value, traceback)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/backends/util.py", line 53, in execute
[Sun Sep 28 09:30:54 2014] [error]     return self.cursor.execute(sql, params)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/backends/mysql/base.py", line 124, in execute
[Sun Sep 28 09:30:54 2014] [error]     return self.cursor.execute(query, args)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/cursors.py", line 205, in execute
[Sun Sep 28 09:30:54 2014] [error]     self.errorhandler(self, exc, value)
[Sun Sep 28 09:30:54 2014] [error]   File "/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/connections.py", line 36, in defaulterrorhandler
[Sun Sep 28 09:30:54 2014] [error]     raise errorclass, errorvalue
[Sun Sep 28 09:30:54 2014] [error] OperationalError: (1366, "Incorrect string value: '\\\\xE5\\\\x8F\\\\x91\\\\xE9\\\\x80\\\\x81...' for column 'text' at row 1")
david
#1 david
By default, MySQL does not create databases using the UTF-8 encoding. You'll have to update your database to use UTF-8.
  • +SetupIssue
#2 wdao****@gmai***** (Google Code) (Is this you? Claim this profile.)
I've change the reviewboard database and all its tables encoding into utf-8 manually.  but I still get the same error:


[Mon Sep 29 03:40:11 2014] [error] ERROR:root:Exception thrown for user dvadva1000 at http://192.168.10.200:8020/api/review-requests/22/reviews/14/diff-comments/
[Mon Sep 29 03:40:11 2014] [error]
[Mon Sep 29 03:40:11 2014] [error] (1366, "Incorrect string value: '\\\\xE5\\\\x9C\\\\xA8\\\\xE5\\\\xA4\\\\xA7...' for column 'text' at row 1")
[Mon Sep 29 03:40:11 2014] [error] Traceback (most recent call last):
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/core/handlers/base.py", line 112, in get_response
[Mon Sep 29 03:40:11 2014] [error]     response = wrapped_callback(request, *callback_args, **callback_kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/views/decorators/cache.py", line 52, in _wrapped_view_func
[Mon Sep 29 03:40:11 2014] [error]     response = view_func(request, *args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/views/decorators/vary.py", line 19, in inner_func
[Mon Sep 29 03:40:11 2014] [error]     response = func(*args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/resources.py", line 494, in __call__
[Mon Sep 29 03:40:11 2014] [error]     request, method, view, api_format=api_format, *args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/resources.py", line 565, in call_method_view
[Mon Sep 29 03:40:11 2014] [error]     return view(request, *args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/resources.py", line 747, in post
[Mon Sep 29 03:40:11 2014] [error]     return self.create(*args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 117, in _call
[Mon Sep 29 03:40:11 2014] [error]     return view_func(*args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/webapi/decorators.py", line 110, in _check
[Mon Sep 29 03:40:11 2014] [error]     return view_func(*args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 117, in _call
[Mon Sep 29 03:40:11 2014] [error]     return view_func(*args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 138, in _checklogin
[Mon Sep 29 03:40:11 2014] [error]     return view_func(*args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 117, in _call
[Mon Sep 29 03:40:11 2014] [error]     return view_func(*args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 117, in _call
[Mon Sep 29 03:40:11 2014] [error]     return view_func(*args, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.9-py2.7.egg/djblets/webapi/decorators.py", line 287, in _validate
[Mon Sep 29 03:40:11 2014] [error]     return view_func(*args, **new_kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/webapi/resources/review_diff_comment.py", line 127, in create
[Mon Sep 29 03:40:11 2014] [error]     **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/webapi/resources/base_comment.py", line 157, in create_comment
[Mon Sep 29 03:40:11 2014] [error]     new_comment.save()
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/reviews/models/base_comment.py", line 133, in save
[Mon Sep 29 03:40:11 2014] [error]     super(BaseComment, self).save()
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/base.py", line 545, in save
[Mon Sep 29 03:40:11 2014] [error]     force_update=force_update, update_fields=update_fields)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/base.py", line 573, in save_base
[Mon Sep 29 03:40:11 2014] [error]     updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/base.py", line 654, in _save_table
[Mon Sep 29 03:40:11 2014] [error]     result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/base.py", line 687, in _do_insert
[Mon Sep 29 03:40:11 2014] [error]     using=using, raw=raw)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/manager.py", line 232, in _insert
[Mon Sep 29 03:40:11 2014] [error]     return insert_query(self.model, objs, fields, **kwargs)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/query.py", line 1514, in insert_query
[Mon Sep 29 03:40:11 2014] [error]     return query.get_compiler(using=using).execute_sql(return_id)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/models/sql/compiler.py", line 903, in execute_sql
[Mon Sep 29 03:40:11 2014] [error]     cursor.execute(sql, params)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/backends/util.py", line 53, in execute
[Mon Sep 29 03:40:11 2014] [error]     return self.cursor.execute(sql, params)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/utils.py", line 99, in __exit__
[Mon Sep 29 03:40:11 2014] [error]     six.reraise(dj_exc_type, dj_exc_value, traceback)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/backends/util.py", line 53, in execute
[Mon Sep 29 03:40:11 2014] [error]     return self.cursor.execute(sql, params)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.7-py2.7.egg/django/db/backends/mysql/base.py", line 124, in execute
[Mon Sep 29 03:40:11 2014] [error]     return self.cursor.execute(query, args)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/cursors.py", line 205, in execute
[Mon Sep 29 03:40:11 2014] [error]     self.errorhandler(self, exc, value)
[Mon Sep 29 03:40:11 2014] [error]   File "/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/connections.py", line 36, in defaulterrorhandler
[Mon Sep 29 03:40:11 2014] [error]     raise errorclass, errorvalue
[Mon Sep 29 03:40:11 2014] [error] OperationalError: (1366, "Incorrect string value: '\\\\xE5\\\\x9C\\\\xA8\\\\xE5\\\\xA4\\\\xA7...' for column 'text' at row 1")
#3 wdao****@gmai***** (Google Code) (Is this you? Claim this profile.)
There's no problem since i changed mysql database default character encoding into utf-8.