【发布时间】:2012-07-13 03:13:03
【问题描述】:
我已将 mysql 5.0 配置为存储 utf8 字符。我通过以下查询对其进行了检查:
SELECT character_set_name FROM information_schema.`COLUMNS` C
WHERE table_schema = "oprdb"
AND table_name = "rtable"
AND column_name = "rtxt";
结果是utf8
SHOW FULL COLUMNS FROM rtable
这将collation 显示为utf8_general_ci
show variables like "character_set_database";
show variables like "collation_database";
这也会在结果中显示utf8
看来mysql配置正确。 我从用户在文本字段中键入文本的 html 页面获取文本,然后我使用 jquery post 将该文本提交给 servlet。
我的 html 页面顶部有这个--
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
我也将此添加到我的表单中--
enctype="text/plain;charset=UTF-8"
在我的 servlet 中,doPost 的第一行是
request.setCharacterEncoding("UTF-8");
然后我只是将该文本保存在数据库中。但问题是,我无法存储这种文本
Hiki iaʻu ke ʻai i ke aniani; ʻaʻole nō lā au e ʻeha.
Я магу есці шкло, яно мне не шкодзіц
他们有什么我想念的吗?
编辑:
这是我的数据源配置..
<Resource auth = "Container"
driverClassName = "com.mysql.jdbc.Driver"
factory = "org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
initialSize = "10"
logAbandoned = "true"
maxActive = "50"
maxIdle = "2"
maxWait = "10000"
name = "jdbc/oprdb"
username = "root"
password = "123456"
removeAbandoned = "true"
removeAbandonedTimeout = "60"
type = "javax.sql.DataSource"
url = "jdbc:mysql://localhost:3306/oprdb" />
【问题讨论】:
-
保存文本时遇到什么错误?
-
没有错误...文本保存在表格中,但格式如下:::... :Τὴ γλῶσσα μοῦ ἔΠ´Ï‰ÏƒÎ±Î½ á¼'λληνικὴ
-
你的 jdbc 驱动 url 是什么?
-
尝试使用
SET NAMES 'UTF_8'(dev.mysql.com/doc/refman/5.0/en/charset-connection.html)。它告诉服务器传入消息的字符集。
标签: java mysql database utf-8 character-encoding