java - 如何让 Java 忽略字符串中的转义序列?

标签 java string blob

我正在编写 Java 代码以从 Oracle 数据库表中读取 Blob 对象。

我需要检索 blob 对象并将它们存储到 String 中以供进一步处理。 我通过以下方式将 blob 对象内容转换为 String:

java.sql.Blob blob = rs.getBlob(i);
columnValue = new String(blob.getBytes(1l, (int) blob.length()));

然而,当我尝试解析结果字符串时,我收到错误消息,提示 “不是有效的转义序列”,因为显然 Blob 数据由一些数据组成,例如 \x,\i 什么的!

有没有办法让 Java 忽略这些转义序列,让它只考虑字符串及其内容(即包含\x、\i 等的字符串)?

最佳答案

我假设您所说的“解析”是指与正则表达式相关的内容,因为否则将这些值存储在字符串中就可以正常工作——转义序列仅对字符串文字和正则表达式有用。

无论如何,StringEscapeUtils.escapeJava(..)应该做你想做的事(来自 commons-lang)

除此之外 - 您应该使用 java.sql.Clob 作为文本数据。

关于java - 如何让 Java 忽略字符串中的转义序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7510112/

相关文章:

java - 如何使用 HttpURLConnection 传递变量

字符串 - strcpy、strcat 等函数

python - 从字符串中提取日期 ("05/Jan/2014")

c++ - OpenCV Blob 检测 : separate close blobs

hibernate - 如何在 Hibernate 中使用 BLOB 数据类型?

java - 旧实体版本上的 Spring Boot 引用

java - 在Java中格式化具有小数位数的数字表示法而不除法的正确方法

python - 在代码中兼容地使用字符串和类字节对象以在 Python 2 和 3 中运行

php - mysql中数组的数据类型

java - 在 Java 运行时尝试从 jar 文件加载类时出现 ClassNotFoundException