我有一个数据库中混合数据的情况,我试图看看这是否是一个可以解决的问题。我所拥有的是三种格式之一的部分网址:在Java中检测URL的编码
/some/path?ugly=häßlich // case 1, Encoding: UTF-8 (plain)
/some/path?ugly=h%C3%A4%C3%9Flich // case 2, Encoding: UTF-8 (URL-encoded)
/some/path?ugly=h%E4%DFlich // case 3: Encoding: ISO-8859-1 (URL-encoded)
我需要在我的应用程序是URL编码UTF8版本
/some/path?ugly=h%C3%A4%C3%9Flich // Encoding: UTF-8 (URL-encoded)
颖在DB都是UTF- 8,但是URL编码可能存在也可能不存在,并且可能具有任何一种格式。
我有一个方法a
编码简单的UTF-8 URL编码UTF-8,和我有一个方法b
解码URL编码ISO-8859-1为纯UTF-8,所以基本上是我计划做的是:
壳体1:
String output = a(input);
壳体2:
String output = input;
壳体3:
String output = a(b(input));
所有这些情况下工作正常,如果我知道哪个是哪个,但有没有一种安全的方式来检测这样的字符串是否是情况2或3? (我可以将参数中使用的语言限制为欧洲语言:德语,英语,法语,荷兰语,波兰语,俄语,丹麦语,挪威语,瑞典语和土耳其语,如果有任何帮助的话)。
我知道显而易见的解决方案是清理数据,但不幸的是,数据不是由我自己创建的,也不是具有必要技术理解的人员(并且有大量需要工作的遗留数据)
只是字符(如你的例子)和数字编码? – s106mo 2012-07-10 20:24:08
@ s106mo是的,应用程序是一个重定向到一个更好的搜索查询。而那些按照定义是字母数字。感谢您的建议 – 2012-07-10 21:21:42