在MySQL中创建一个PROCEDURE:mysql> CREATE PROCEDURE POS.myTest(OUT S VARCHAR(25))
    -> SET S = '字符';执行的时候出现下面的情况:mysql> CALL POS.myTest(@a);
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> SELECT @a;
+------+
| @a   |
+------+
| ??   |
+------+
1 row in set (0.00 sec)我已经将涉及字符的变量设置成了"utf8":mysql> SHOW VARIABLES LIKE 'chara%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)显示表中的中文字符,或是将中文加到表中都没有问题.而执行下面的操作也OK:mysql> SET @c = '中文';
Query OK, 0 rows affected (0.00 sec)mysql> SELECT @c;
+--------+
| @c     |
+--------+
| 中文   |
+--------+
1 row in set (0.00 sec)但是在CREATE PROCEDURE中加入"SET @c = '中文'"后执行起来就出现乱码.它的warning信息是这样的:mysql> SHOW warnings;
+---------+------+----------------------------------------------------------------------------+
| Level   | Code | Message                                                                    |
+---------+------+----------------------------------------------------------------------------+
| Warning | 1366 | Incorrect string value: '\xE5\xAD\x97\xE7\xAC\xA6' for column 'S' at row 1 |
+---------+------+----------------------------------------------------------------------------+
1 row in set (0.00 sec)请问有谁知道原因?谢谢!