summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2014-01-06 13:43:29 +0100
committerDaniel Friesel <derf@finalrewind.org>2014-01-06 13:43:29 +0100
commit574e641846ced2bec34276c9667eaefb0182fb7d (patch)
treee1eda8b574006bd6d2e2b692bcdc827681dfc043
parent8502e801d50f66244a20f6a3561d4cf943d3bb77 (diff)
Handle Umlauts in efa-m and EFA.pm
-rw-r--r--Changelog5
-rwxr-xr-xbin/efa-m4
-rw-r--r--lib/Travel/Status/DE/EFA.pm4
3 files changed, 11 insertions, 2 deletions
diff --git a/Changelog b/Changelog
index 24ac064..260ba6f 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,8 @@
+git HEAD
+
+ * efa-m: Handle UTF8 in place/stop input
+ * Travel::Status::DE::EFA: Handle decoded input with umlauts
+
Travel::Status::DE::VRR 1.06 - Thu Jan 02 2014
* Add Travel::Status::DE::EFA module, move ::Result and ::Line to
diff --git a/bin/efa-m b/bin/efa-m
index a789058..b76061e 100755
--- a/bin/efa-m
+++ b/bin/efa-m
@@ -9,6 +9,7 @@ our $VERSION = '1.06';
binmode( STDOUT, ':encoding(utf-8)' );
+use Encode qw(decode);
use Getopt::Long qw(:config no_ignore_case);
use List::Util qw(max);
use Travel::Status::DE::EFA;
@@ -40,6 +41,9 @@ if ( @ARGV != 2 ) {
my ( $place, $input ) = @ARGV;
+$place = decode( 'UTF-8', $place );
+$input = decode( 'UTF-8', $input );
+
if ( $input =~ s{ ^ (?<type> address|poi|stop) : }{}x ) {
$input_type = $+{type};
}
diff --git a/lib/Travel/Status/DE/EFA.pm b/lib/Travel/Status/DE/EFA.pm
index fc6f0dc..a443c4e 100644
--- a/lib/Travel/Status/DE/EFA.pm
+++ b/lib/Travel/Status/DE/EFA.pm
@@ -84,11 +84,11 @@ sub new {
mode => 'direct',
nameInfo_dm => 'invalid',
nameState_dm => 'empty',
- name_dm => $opt{name},
+ name_dm => encode( 'ISO-8859-15', $opt{name} ),
outputFormat => 'XML',
placeInfo_dm => 'invalid',
placeState_dm => 'empty',
- place_dm => $opt{place},
+ place_dm => encode( 'ISO-8859-15', $opt{place} ),
ptOptionsActive => '1',
requestID => '0',
reset => 'neue Anfrage',