如何将“'”转换为“''”

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 都会为您引用,但使用带参数的准备好的语句。

以上是关于如何将“'”转换为“''”的主要内容,如果未能解决你的问题,请参考以下文章

如何将DataGridView转换为DataTable?

如何将UTC秒数转换为日期,100分,在线等

VB中如何将object类型转换为其他类型?

如果将一个NSObject从NSDictionary转换为NSString?

ArcEngine中如何将图形转换为要素

将rowdatapacket转换为数组,如何将mysql node.js api rowdatapacket转换为数组,将字符串转换为数组