summaryrefslogtreecommitdiff
path: root/localsendsms
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2010-09-26 19:35:20 +0200
committerJonas Smedegaard <dr@jones.dk>2010-09-26 19:35:20 +0200
commit745c6a87abb435f92e4bed53fb4fcc9082637b2d (patch)
tree6fab793f263c4d3353775970f0ee966eeb2298cd /localsendsms
parent8f6bf384c28276b6f05f9679e9a4e690bdc79803 (diff)
Fix UTF-8 IO handling and transcoding.
Diffstat (limited to 'localsendsms')
-rwxr-xr-xlocalsendsms15
1 files changed, 8 insertions, 7 deletions
diff --git a/localsendsms b/localsendsms
index 3f5ca07..809be51 100755
--- a/localsendsms
+++ b/localsendsms
@@ -7,6 +7,7 @@
use strict;
use warnings;
+use utf8; # this document itself is UTF-8 encoded.
use Env qw[$debug $info $warn $dummy $urldecode];
use Log::Log4perl qw(:easy);
@@ -58,15 +59,15 @@ if ($debug) {
# based on Text::Unidecode bug#8017: http://rt.cpan.org/Ticket/Display.html?id=8017#txn-322351
sub transliterate {
- my ($tocharset, $string) = @_;
+ my $string = shift @_;
- my $res = encode($tocharset, decode('GSM0338', encode('GSM0338', decode('UTF-8', $string), sub {
+ my $res = decode('GSM0338', encode('GSM0338', $string, sub {
my $ascii = unidecode(chr $_[0]);
_utf8_off($ascii);
$ascii;
- })));
+ }));
- return $res;
+ return $res || '';
}
sub sendmsg {
@@ -90,7 +91,7 @@ sub sendmsg {
$url .= '&validity=' . uri_escape($sms_validity) if ($sms_validity);
$url .= '&req_feat=' . uri_escape($sms_req_feat) if ($sms_req_feat);
$url .= '&binfo=' . uri_escape($sms_binfo) if ($sms_binfo);
- $url .= '&' . $sms_msgtag . '=' . uri_escape(transliterate($sms_cp, $msg));
+ $url .= '&' . $sms_msgtag . '=' . uri_escape(encode($sms_cp, $msg));
unless ($dummy) {
DEBUG "Sending request: $url";
my $response = $ua->request(HTTP::Request->new('GET', $url));
@@ -101,10 +102,10 @@ sub sendmsg {
} else {
DEBUG "[DUMMY] Sending request: $url";
print STDERR "\n [$from --> $to: $desc]\n\n";
- print STDERR transliterate($sms_cp, $msg) . "\n";
+ print STDERR $msg . "\n";
}
}
-&sendmsg($sms_phone, $phone, "message", "@ARGV");
+&sendmsg($sms_phone, $phone, "message", &transliterate(decode('UTF-8', join(' ', @ARGV))));
1;