4
我從RSS通道獲取數據,將其清理並保存在數據庫中。我使用java,tidy,MySQL和JDBC。編碼問題wirh JDBC和MySQL
步驟:
- 我搶RSS-記錄。沒關係。
- 我用整潔來清理html。 這是一個轉變。 Tidy會自動將字符串「So So ’#不太可能」轉換爲「所以不太可能」。
- 我這個字符串保存到表
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();
作爲RESU我看到數據庫中的破碎字符就像「So it'?不太可能「。我也看到了,然後在網頁上輸出文本(utf-8頁面)。