指定バイト数で自動的に改行する (Perl. Jcode.pm, jfold)
日本語を含む文字列がある。
この文字列が改行されておらず非常に長文であるため、指定したバイト数で自動的にBR要素などを用いて改行を行いたい。
このような場合には、Jocode.pm内のメソッド「jfold」を用いると簡単に実現できる。
;#
;# 指定バイト数で自動的に改行する
;#
use Jcode;
print html_jfold('あいうえおかきくけこさしすせそ', 10), "\n";
#----------------------------------------------#
#■指定バイト数で改行する(<br>版)
#----------------------------------------------#
sub html_jfold{
my $str = shift; #指定文字列
my $byte = shift; #指定バイト
my $j = new Jcode($str);
my $result = '';
foreach my $buff ( $j->jfold($byte) ){
$result .= "$buff<br>\n";
}
return($result);
}
○実行結果
あいうえお<br>
かきくけこ<br>
さしすせそ<br>
なお、Jcode.pmの取得方法はコチラのページから。
Jcode.pm - jcode.pl の後継、Encode.pm への架け橋
http://openlab.jp/Jcode/index-j.html
日本語の文字コードを変換するだけであれば、Perl5.8から標準でついているEncodeモジュールを使用した方が高速ですが、Jcode.pmが2.0以上であればEncodeモジュールを自動的に使用するよう仕様が変更になっています。
