diff options
-rw-r--r-- | Changelog | 5 | ||||
-rwxr-xr-x | bin/efa | 7 | ||||
-rw-r--r-- | lib/Travel/Routing/DE/VRR.pm | 5 |
3 files changed, 16 insertions, 1 deletions
@@ -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 @@ -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 29a30b3..28dcf58 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 ); |