我从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


猜你喜欢
- java – 用spring数据更新对象mongodb和kotlin不能正常工作 2023-11-02
- springboot获取真实ip地址的方法实例 2022-11-29
- 详解SpringMVC的两种实现方式 2023-06-17
- spring中IOC控制反转依赖注入和new对象的区别说明 2022-11-02
- Spring mvc实现Restful返回xml格式数据实例详解 2023-08-01
- SpringBoot如何使用@Cacheable进行缓存与取值 2023-04-17
- SpringMVC加载控制与Postmand的使用和Rest风格的引入及RestFul开发全面详解 2023-06-10
- SpringBoot配置文件加载方法详细讲解 2023-06-24
- SpringBoot整合Docker实现一次构建到处运行的操作方法 2023-06-17
- java – SQLException:没有为url = jdbc:derby找到合适的驱动程序 2023-11-02