java – 编码问题wirh JDBC和MySQL

我从RSS频道抓取数据,清理它并保存在数据库中.我使用java,tidy,MySQL和JDBC.脚步:我抓住了RSS记录.没关系.我用整洁来消毒html.这是一个转变. Tidy会自动将“So it s)”这样的字符串转换为“所以不太可能”.我将...

我从RSS频道抓取数据,清理它并保存在数据库中.我使用java,tidy,MySQL和JDBC.

脚步:

>我抓住了RSS记录.没关系.
>我用整洁来消毒html.
这是一个转变. Tidy会自动将“So it’ s)”这样的字符串转换为“所以不太可能”.
>我将此字符串保存到表中

MySQL方案是

CREATE TABLE IF NOT EXISTS `rss_item_safe_texts` (
  `id` int(10) unsigned NOT NULL,
  `title` varchar(1000) NOT NULL,
  `link` varchar(255) NOT NULL,
  `description` mediumtext NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

JDBC连接URL是

connUrl = "jdbc:mysql://" + host + "/" + database + "?user=" + username + "&password=" + password + "&useUnicode=true&characterEncoding=UTF-8";

Java代码是

PreparedStatement updateSafeTextSt = conn.prepareStatement("UPDATE `rss_item_safe_texts` SET `title` = ?, `link` = ?, `description` = ? WHERE `id` = ?");
updateSafeTextSt.setString(1, EscapingUtils.escapeXssInjection(title));
updateSafeTextSt.setString(2, link);
updateSafeTextSt.setString(3, EscapingUtils.escapeXssInjection(description));
updateSafeTextSt.setInt(4, itemId);
updateSafeTextSt.execute();
updateSafeTextSt.close();

结果我在数据库中看到了破碎的字符,比如“所以它不可能”.我在网页上看到了相同的输出文字(utf-8页面).

解决方法:

不要忘记还有很多其他地方可以设置不同的编码.例如,检查数据库/表/列是否具有正确的编码开头.另外,我通常会在MySQL中为utf8设置所有内容:

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+

本文标题为:java – 编码问题wirh JDBC和MySQL

基础教程推荐