From 304cae4c559fd21c30e54b1eb0cf88dadf18e565 Mon Sep 17 00:00:00 2001 From: "andreas.schildbach" Date: Tue, 27 Jul 2010 08:31:46 +0000 Subject: [PATCH] fixed encoding git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@29 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/MvvProvider.java | 9 +++++---- src/de/schildbach/pte/ParserUtils.java | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/de/schildbach/pte/MvvProvider.java b/src/de/schildbach/pte/MvvProvider.java index 569b1a6d..38cc9e5f 100644 --- a/src/de/schildbach/pte/MvvProvider.java +++ b/src/de/schildbach/pte/MvvProvider.java @@ -38,6 +38,7 @@ public class MvvProvider implements NetworkProvider public static final String NETWORK_ID = "efa.mvv-muenchen.de"; private static final long PARSER_DAY_ROLLOVER_THRESHOLD_MS = 12 * 60 * 60 * 1000; + private static final String ENCODING = "ISO-8859-1"; public boolean hasCapabilities(Capability... capabilities) { @@ -54,7 +55,7 @@ public class MvvProvider implements NetworkProvider public List autoCompleteStationName(final CharSequence constraint) throws IOException { - final CharSequence page = ParserUtils.scrape(AUTOCOMPLETE_NAME_URL + ParserUtils.urlEncode(constraint.toString())); + final CharSequence page = ParserUtils.scrape(AUTOCOMPLETE_NAME_URL + ParserUtils.urlEncode(constraint.toString(), ENCODING)); final List names = new ArrayList(); @@ -128,7 +129,7 @@ public class MvvProvider implements NetworkProvider uri.append("&reducedAnyPostcodeObjFilter_origin=64"); uri.append("&reducedAnyTooManyObjFilter_origin=2"); uri.append("&type_origin=stop"); // any|stop|poi|address - uri.append("&name_origin=").append(ParserUtils.urlEncode(from)); // fine-grained location, e.g. stop name + uri.append("&name_origin=").append(ParserUtils.urlEncode(from, ENCODING)); // fine-grained location uri.append("&useHouseNumberList_destination=1"); uri.append("&place_destination="); // coarse-grained location, e.g. city @@ -141,7 +142,7 @@ public class MvvProvider implements NetworkProvider uri.append("&reducedAnyPostcodeObjFilter_destination=64"); uri.append("&reducedAnyTooManyObjFilter_destination=2"); uri.append("&type_destination=stop"); // any|stop|poi|address - uri.append("&name_destination=").append(ParserUtils.urlEncode(to)); // fine-grained location, e.g. stop name + uri.append("&name_destination=").append(ParserUtils.urlEncode(to, ENCODING)); // fine-grained location if (via != null) { @@ -156,7 +157,7 @@ public class MvvProvider implements NetworkProvider uri.append("&reducedAnyPostcodeObjFilter_via=64"); uri.append("&reducedAnyTooManyObjFilter_via=2"); uri.append("&type_via=stop"); // any - uri.append("&name_via=").append(ParserUtils.urlEncode(via)); + uri.append("&name_via=").append(ParserUtils.urlEncode(via, ENCODING)); } uri.append("&itdTripDateTimeDepArr=").append(dep ? "dep" : "arr"); diff --git a/src/de/schildbach/pte/ParserUtils.java b/src/de/schildbach/pte/ParserUtils.java index 2f738ff9..88b742e1 100644 --- a/src/de/schildbach/pte/ParserUtils.java +++ b/src/de/schildbach/pte/ParserUtils.java @@ -157,11 +157,23 @@ public final class ParserUtils System.out.println("group " + i + ":'" + m.group(i) + "'"); } - public static String urlEncode(String part) + public static String urlEncode(final String str) { try { - return URLEncoder.encode(part, "utf-8"); + return URLEncoder.encode(str, "utf-8"); + } + catch (UnsupportedEncodingException x) + { + throw new RuntimeException(x); + } + } + + public static String urlEncode(final String str, final String enc) + { + try + { + return URLEncoder.encode(str, enc); } catch (UnsupportedEncodingException x) {