2011-06-27 24 views
2

我正在使用NxParser库读取文本文件(RDF)。将%编码字符转换为“正常”值

我得到了很多'百分比编码'字符。我的问题是双重的:

  1. 我应该保存编码和“解码”他们的话时,我想显示他们,或者我应该对其进行解码,然后存储它们(我使用MySQL来存储数据(如果让任何区别))

  2. 我如何解码保留字符,我一直在试图找到能够采取一些输入,然后打印出同一个词的“好”版本的库

我试着用他们的'正常值替换一些字符'相当于如此someString.replaceAll("%28","(").replaceAll("%29",")。这可以正常工作,但编写起来很耗时,也可能运行缓慢(如果调用了大量的replaceAll())。

+0

谢谢大家 – Ankur

回答

1

我应该保存编码和“解码”他们的话时,我想显示它们[...]

我会救他们“未编码”,当你想显示他们对其进行编码。 (不同的(未来呢?)显示机制可能需要不同的编码!)

我如何解码保留字符,我一直在试图找到能够采取一些输入,然后打印出库“同一个词

的好”的版本,您应该使用URLDecoder用于此目的。

例子:

System.out.println(URLDecoder.decode("Hello %28 world", "UTF-8")); 

输出:

Hello (world 
1
  1. 这将是最好的保存解码值。
    由于您的值存储在数据库中,因此不需要保留它们的编码。具有实际的解码值而不是较不可读的编码版本会更清楚。根据需要,您可以在使用它们之前再次对这些值进行编码。
  2. 使用java.net.URLDecoder你有字符串 “编码的URL” 解码这些值
+0

“这将是最好的保存解码值”......我想知道你是否有任何特别的原因。 – Ankur

+0

编辑答案。 – wjans

+0

谢谢,这就是我已经走了,因为它现在更适合我。 – Ankur

1

。试试这个:

import java.net.URLDecoder; 

String someString = "%28test%29"; 
String decoded = URLDecoder.decode(url, "UTF-8"); 
System.out.println(decoded); // "(test,"