MariaDB社区
标题:
MySQL-涉及到PROCEDURE的中文乱码问题
[打印本页]
作者:
ito_oti
时间:
2010-12-31 20:27
标题:
MySQL-涉及到PROCEDURE的中文乱码问题
在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)
请问有谁知道原因?谢谢!
欢迎光临 MariaDB社区 (http://123.56.88.72/)
Powered by Discuz! X3.2