phi*_*ill 2 java string special-characters
在以下使用PreparedStatement该类的SQL查询中:
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();
Run Code Online (Sandbox Code Playgroud)
我有时在项目描述中得到撇号和单引号和双引号.例如,我的一个项目的后期问题是"Planar 22"监视器".当然,字符串被误解并认为描述值只是"Planar 22".处理字符串中特殊字符的最佳方法是什么?
我读过有些人正在使用正则表达式,但这些似乎是针对具体情况而定的.我正在研究的另一种方法是逐个字符地读取字符串数组.我希望有一种更有效,资源更少的方式来做到这一点.
更新一些更广泛的测试,结果发现我的代码中出现了更多问题.它也是一个URL编码问题.当jsp代码填充html表单时,它会尝试将描述字段移动到在线表单,它会在表单上而不是在查询上截断它.jTDS还纠正了接收特殊字符的问题.因为jTDS是一个jar,它也有助于避免重启机器.我将奖励jTDS线程的赏金,因为那是我部分使用的.
提前致谢
Mic*_*rdt 15
由于您使用的是PreparedStatement,因此您无需执行任何操作,它将由JDBC驱动程序为您处理.您唯一需要注意的是非ASCII字符,特别是您必须确保数据库表使用文本列的编码来处理您将要使用的所有字符.但这是一个SQL问题,而不是Java问题.