【发布时间】:2009-05-26 17:28:07
【问题描述】:
在以下 SQL 查询中使用PreparedStatement 类:
String query_descrip = "insert into timitemdescription (itemkey, languageid, longdesc, shortdesc) values (?, 1033, ?,?)";
PreparedStatement pstmt2 = con.prepareStatement(query_descrip);
pstmt2.setInt(1, rs4);
pstmt2.setString(2, itemdescription);
pstmt2.setString(3, itemdescription.substring(0,39));
pstmt2.executeUpdate();
我的商品描述中有时会出现撇号和单引号和双引号。例如,我最近发布的一个项目是“Planar 22”监视器。当然,字符串被误解了,认为描述值只是“Planar 22”。 处理字符串中特殊字符的最佳方法是什么?
我听说有些人正在使用正则表达式,但这些似乎是针对具体情况的。我正在研究的另一种方法是逐字符读取字符串数组。我希望有一种更有效、资源更少的方式来做到这一点。
更新 经过一些更广泛的测试后,我的代码中出现了更多问题。这也是一个 URL 编码问题。当jsp代码填充html表单时,它会尝试将描述字段移动到在线表单,它会在表单而不是查询中截断它。 jTDS 还纠正了接收特殊字符的问题。因为 jTDS 是一个 jar,它还有助于避免重新启动机器。我将奖励 jTDS 线程,因为那是我部分使用的。
提前致谢
【问题讨论】:
-
您使用的是什么 JDBC 驱动程序和数据库?
-
我正在使用用于 JDBC 和 SQL Server 2005 的 MS SQL Server 2000 驱动程序
-
为什么我的问题被否决了?
标签: java string special-characters