我正在编写 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/