【发布时间】:2011-02-05 17:38:34
【问题描述】:
我的设置:
mysql 5.1
显示变量:
| character_set_client | utf8
|字符集连接 | utf8
|字符集数据库 | utf8
|字符集文件系统 |二进制
|字符集结果 | utf8
| character_set_server | utf8
|字符集系统 | utf8
|字符集目录 | D:\Programme\MySQL\MySQL 服务器 5.1\share
字符集\
| collation_connection | utf8_general_ci
| collation_database | utf8_unicode_ci
|排序服务器 | utf8_general_ci
甚至
|初始化连接 | SET collation_connection = utf8_general_ci;设置名称 utf8;
表table有utf8字符集
tomcat 6.0
jdbc 连接器使用 characterEncoding="utf8" useUnicode="true"
当我尝试时
stmt.execute("UPDATE *table* SET *value*=\"ÿ\" WHERE ...)
它有效,但对于
stmt.execute("UPDATE *table* SET *value*=\"Ā\" WHERE ...)
我得到一个
java.sql.SQLException:字符串值不正确:列的“\xC4\x80” 第 1 行的“值”
此外,它适用于 ÿ 以下的所有字符,可以用 1 个字节编码,但只要需要 2 个字节:砰!
为什么会这样?我怎样才能让它工作?
【问题讨论】: