|
如何识别中文以避免出现半个汉字 Nullgate |
|
【 在 vrain (`_') 的大作中提到: 】
: 试试我的这段程序: : #!/usr/bin/perl : sub short_str { : my($str) = shift; : my($maxlen) = shift; : local $i; : if ( length($str) <= $maxlen ) : { : return $str; : } : for ( $i=0; $i<$maxlen; $i++ ) : { : if ( substr($str, $i, 2) =~ /[200-377][200-377]/ ) : { : $i++; : } : } : if ( $i == $maxlen ) { return substr($str, 0, $maxlen) . "..."; } : return substr($str, 0, $maxlen - 1) . "..."; : } : print &short_str("我很讨厌ajal这个怪兽", 12); : print "n"; : print &short_str("我很讨厌ajal这个怪兽", 13); : print "n"; : print &short_str("ajal is not stupid", 12); : print "n"; : print &short_str("not enough?", 12); : print "n"; 又想了一个方法: sub short_str_2 { my($str) = shift; my($maxlen) = shift; if ( length($str) <= $maxlen ) { return $str; } if ( substr($str, 0, $maxlen) =~ /^([ |