Tag: 转义

转义字符串中的JSON控制字符

在Java中编写JSON解析器时遇到了“整容”问题: 在JSON规范中,明确指出Javascript控制字符与例如C和Java中的相同,如\ n或\ t。 我遇到的问题是,当JSON字符串中有控制代码时(所以在引号中:“property”:“value”),然后显示的JSON代码搞砸了,因为控制字符正在改变打印,例如\ n创建一个新行或\ t创建一个选项卡。 一个例子: String s = “{\n\t\”property1\”: \”The quick brown fox\njumps over the lazy dog\”,\n\t\”property2\”:\”value2\”\n}” 印刷为: { “property1”: “The quick brown fox jumps over the lazy dog”, “property2”: “value2” } 解决方案如下所示: String s = “{\n\t\”property1\”: \”The quick brown fox\\njumps over the lazy dog\”,\n\t\”property2\”: \”value2\”\n}” 正确打印为: { “property1”: “The quick brown […]

StringEscapeUtils查明字符串是否被转义

我一直在使用StringEscapeUtils.escapeHTML来转义URL。 是否有类似的东西可以找出字符串是否已被转义?

VTD-XML似乎破坏了XML文档中的转义字符串

我正在研究一个XML数据集( 此处提供的DrugBank数据库),其中一些字段包含转义的XML字符,如“&”等。 为了使问题更具体,这是一个示例场景: DB00001 # Askari AT, Lincoff AM: Antithrombotic Drug Therapy in Cardiovascular Disease. 2009 Oct; pp. 440–. ISBN 9781603272346. “Google books”:http://books.google.com/books?id=iadLoXoQkWEC&pg=PA440. . … … 由于整个文档很大,我解析如下: VTDGen gen = new VTDGen(); try { gen.setDoc(Files.readAllBytes(DRUGBANK_XML)); gen.parse(true); } catch (IOException | ParseException e) { SystemHelper.exitWithMessage(e, “Unable to process Drugbank XML data. Aborting.”); } VTDNav nav = […]

快速而又脏的SQL字符串转义

我正在为一个带有postgresql DB的Web应用程序的家庭滚动QueryBuilder类进行最后润色。 它将PreparedStatement用于所有查询,并受到SQL注入的保护。 但是,我想要一种“快速和脏”的方式来表示QueryBuilder及其toString()方法,仅用于调试目的。 该方法将组装查询字符串,通常传递给PreparedStatement ,然后简单地替换每个? 在字符串中具有相应的单引号值。 toString() javadoc将警告其他开发人员,这是一个不安全的近似,仅用于调试等。 我知道这些值应该是他们的单引号加倍(即O’Connell逃到O”Connell )。 是否还有其他应该处理的特殊字符我忘记了? 我寻找类似的问题,但只发现人们被骂使用PreparedStatement (他们应该,让记录显示)。 编辑:不打算使用第三方工具完成这个特定的任务,我真的只想在这里快速而肮脏。 我确实欣赏这些链接 – 我可能会将它们视为其他用途。 最后编辑:感谢所有有用的指示。 我只想补充一点,对于那些从谷歌这里绊倒的人来说,不要将这些技巧用于击中数据库的任何内容,请使用PreparedStatement 。

JNDI查询返回到LDAP服务器的名称中的正斜杠

我需要对LDAP目录服务器进行多次查询,并且我正在使用JNDI目录工具。 然后我需要使用它们的专有名称对查询结果中的对象进行一些处理。 服务器返回的一些条目包含正斜杠字符,因此JNDI使用双引号转义整个名称: NamingEnumeration results = dirContext.search(queryRoot, queryFilter, controls); for (SearchResult result : Collections.list(results)) { String objectName = result.getName(); System.out.println(objectName); } 如果查询结果中的某个对象有一个名称,比如’b = id / 10,a = 1’,则会打印出这样的名称 “b=id/10,a=1” 请注意名称周围的双引号。 由于这些引号,我无法直接从它创建javax.naming.ldap.LdapName :它失败并出现NamingException “Invalid name”。 我知道我可以手动删除这些引号,但这感觉很糟糕。 有没有办法避免这种逃避? 或者也许有更清洁的方法来做我需要的东西? PS有趣的是官方JNDI教程建议使用LdapName实现“简单名称操作”,甚至提到逃避问题,但没有提供上述问题的任何链接。

用(\\?)替换问号(?)

我试图定义一个模式来匹配文本与其中的问号(?)。 在正则表达式中,问号被认为是“一次或根本没有”。 那么我可以用(\\?)替换我的文本中的(?)符号来修复模式问题吗? String text = “aaa aspx?pubid=222 zzz”; Pattern p = Pattern.compile( “aspx?pubid=222” ); Matcher m = p.matcher( text ); if ( m.find() ) System.out.print( “Found it.” ); else System.out.print( “Didn’t find it.” ); // Always prints.

读取转义报价作为xml的转义报价

我将xml文件加载到DOM模型中并进行分析。 代码是: public class MyTest { public static void main(String[] args) { Document doc = XMLUtils.fileToDom(“MyTest.xml”);//Loads xml data to DOM Element rootElement = doc.getDocumentElement(); NodeList nodes = rootElement.getChildNodes(); Node child1 = nodes.item(1); Node child2 = nodes.item(3); String str1 = child1.getTextContent(); String str2 = child2.getTextContent(); if(str1 != null){ System.out.println(str1.equals(str2)); } System.out.println(); System.out.println(str1); System.out.println(str2); } } MyTest.xml […]

JDialog:如何禁用我的modal dialog的ESC键?

所以有一个框架(主应用程序)。 从这里开始,我打开一个Modal JDialog并启动后台线程,同时在表格中显示进度(日志条目)。 这个过程很关键,不应该是可停止/可隐藏/可关闭的,因此为什么对话框的关闭按钮被取消激活,直到一切都完成。 但是,用户可以随时点击ESC键并调用onCanceled(),从而调用this.dispose()。 编辑:我inheritance了这个项目并监督了inheritance兔洞的深度,因此监督了ESC的处理,接着是e.consume(),这就是为什么我的解决方案无法正常工作!

ASCII到HTML实体在Java中转义

我发现这个网站有转义码,我只是想知道是否有人已经这样做了所以我不需要花费几个小时来构建这个逻辑: StringBuffer sb = new StringBuffer(); int n = s.length(); for (int i = 0; i < n; i++) { char c = s.charAt(i); switch (c) { case '\u25CF': sb.append("●"); break; case '\u25BA': sb.append("►"); break; /* … the rest of the hex chars literals to HTML entities */ default: sb.append(c); break; } }

转义java字符串文字中的反斜杠

我正在使用Java一段时间并提出这个问题:我在Windows中使用硬编码路径 “D:\Java-code\JavaProjects\workspace\eypros\src” 问题是我需要转义反斜杠字符才能将其与字符串一起使用。 所以我手动逃避每个反斜杠: “D:\\Java-code\\JavaProjects\\workspace\\eypros\\src” 有没有办法自动获取未转义的路径并返回转义的java字符串。 我想也许除了java字符串之外的另一个容器可以做到这一点(但我不知道)。 有什么建议么?