我有一個數據庫中混合數據的情況,我試圖看看這是否是一個可以解決的問題。我所擁有的是三種格式之一的部分網址:在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