diff --git a/Changelog b/Changelog index 913de83937fa8a0f3e9f8d068f73c734e1c775f5..12e97e6af7ba010e4b20e4ab6943d92622ae6375 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,8 @@ +git HEAD + + * efa: Handle UTF8 in place/stop input + * Travel::Routing::DE::VRR: Handle decoded input with non-ASCII characters + Travel::Routing::DE::VRR 2.03 - Thu Jul 4 2013 * Disable smartmatch warnings on perl >= 5.018 diff --git a/bin/efa b/bin/efa index 583a48c26811c5ab8d14697ce487187af578728e..a6787f9ab70ed2981f6a9e93c15425542570773b 100755 --- a/bin/efa +++ b/bin/efa @@ -10,6 +10,7 @@ no if $] >= 5.018, warnings => "experimental::smartmatch"; use utf8; +use Encode qw(decode); use Travel::Routing::DE::VRR; use Exception::Class; use Getopt::Long qw/:config no_ignore_case/; @@ -176,6 +177,12 @@ if ( not( @from and @to ) ) { for my $pair ( [ \@from, \$from_type ], [ \@via, \$via_type ], [ \@to, \$to_type ], ) { + + if ( @{ $pair->[0] } ) { + $pair->[0]->[0] = decode( 'UTF-8', $pair->[0]->[0] ); + $pair->[0]->[1] = decode( 'UTF-8', $pair->[0]->[1] ); + } + next if ( not defined $pair->[0]->[1] ); if ( diff --git a/lib/Travel/Routing/DE/VRR.pm b/lib/Travel/Routing/DE/VRR.pm index 29a30b3d9e5a7e5d7b42a202b854daa280e8cdde..28dcf5807741bfbe884fa000593911b5f074f3d1 100644 --- a/lib/Travel/Routing/DE/VRR.pm +++ b/lib/Travel/Routing/DE/VRR.pm @@ -7,7 +7,7 @@ use 5.010; no if $] >= 5.018, warnings => "experimental::smartmatch"; use Carp qw(cluck); -use Encode qw(decode); +use Encode qw(decode encode); use Travel::Routing::DE::VRR::Route; use LWP::UserAgent; use XML::LibXML; @@ -236,6 +236,9 @@ sub place { ); } + $place = encode( 'ISO-8859-15', $place ); + $stop = encode( 'ISO-8859-15', $stop ); + $type //= 'stop'; @{ $self->{post} }{ "place_${which}", "name_${which}" } = ( $place, $stop );