Je veux implémenter mon propre tweet compressor. Fondamentalement, cela fait ce qui suit. Cependant, je suis coincé avec certains des problèmes Unicode.Un 'tweet compressor' basé sur Unicode en Perl
Voici mon script:
#!/usr/bin/env perl
use warnings;
use strict;
print tweet_compress('cc ms ns ps in ls fi fl ffl ffi iv ix vi oy ii xi nj/, "\. " ,", "'),"\n";
sub tweet_compress {
my $tweet = shift;
$tweet =~ s/\. ?$//;
my @orig = (qw/cc ms ns ps in ls fi fl ffl ffi iv ix vi oy ii xi nj/, ". " ,", ");
my @new = qw/㏄ ㎳ ㎱ ㎰ ㏌ ʪ fi fl ffl ffi ⅳ ⅸ ⅵ ѹ ⅱ ⅺ nj . ,/;
$tweet =~ s/$orig[$_]/$new[$_]/g for 0 .. $#orig;
return $tweet;
}
Mais imprime jonque au terminal:
?.?.?.?.?.?.?.f.?.f?.?.?.?.?.?.?.nj/."\..,"."
Qu'est-ce que je fais mal?
* cringe * Quel abus de Unicode est-ce? – Thanatos
D'accord. Piratage méprisable :). De plus, si vous avez l'intention de stocker cela, il faudra plus d'espace car beaucoup de ces caractères prennent 3 octets dans utf8. par exemple. cc prendrait 2 octets mais ㏄ serait 3 octets 0xE3 0x8F 0x84. Sans compter que le tweet va casser sur beaucoup de téléphones mobiles (certains d'entre nous utilisent SMS pour obtenir des tweets). – deepakg
Eh bien le fait est que les glyphes utf8 sont comptés comme un personnage pour le but de Twitter, donc en fonction du nombre de caractères spéciaux que vous obtenez dans votre tweet, il vous donne une bande passante accrue. 140 caractères en chinois ou japonais script est beaucoup plus de 140 caractères anglais;) – singingfish