如何将“'”转换为“''”
Posted
技术标签:
【中文标题】如何将“\'”转换为“\'\'”【英文标题】:how to convert "'" to "''"如何将“'”转换为“''” 【发布时间】:2019-08-05 08:34:46 【问题描述】:我正在处理用户数据并将其存储到可能包含"'"
、"''"
或"'''"
的oracle。
我曾尝试使用replaceAll()
方法转换数据,但它输出的结果不是我的预期结果。
尝试 replaceAll() 但不起作用
String sAddress1="";
sAddress1 = "ABC''S ROA'''D";
sAddress1 = sAddress1.replaceAll("'","''");
我希望 sAddress1 的输出是:
“ABC''''S ROA''''''D”
但实际输出是:
“ABC''S ROA''''D”
【问题讨论】:
为我工作。显示您的完整代码。 这里也一样。我得到了你期望的输出 你确定你的字符串包含单引号吗?也许它包含看起来与单引号非常相似的重音? 你为什么要这样做?如果要使其在查询中使用安全:不要这样做。改用带参数的预处理语句。 【参考方案1】:您的代码可以正常工作。问题在于您的 Oracle 数据库中的持久性。
您以哪种方式将其存储到数据库中?您使用的是原生 SQL 吗?你在使用 JPA/Hibernate 吗?
您可能正在使用本机 SQL,因为 JPA/Hibernate 选项应该为您处理引用。
查看 Oracle 文档 https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#sthref344 中的文本文字部分
或查看有关为 Oracle DB 转义单个引用的其他答案 PL/SQL, how to escape single quote in a string? Escaping single quote in PLSQL
【讨论】:
即使是纯 JDBC 使用也可以为您执行此操作。从技术上讲,Hibernate 和 JPA 都会为您引用,但使用带参数的准备好的语句。以上是关于如何将“'”转换为“''”的主要内容,如果未能解决你的问题,请参考以下文章
如果将一个NSObject从NSDictionary转换为NSString?
将rowdatapacket转换为数组,如何将mysql node.js api rowdatapacket转换为数组,将字符串转换为数组