TOP > Web制作

substrで切り取った最後の文字の文字化け処理(Shift-JIS) perl



昔、Shift-JISで作成したサイトのリニューアルで、記事一覧を出すためにコピーの文字を一定文字数で抜き取ることに。

substr関数(perl)を使用してみると、最後の文字が文字化けする場合があって見苦しい。(笑)

昔も、こんなことがあって解決したと思うがすっかり忘れている。

いろいろ探してみるとありました。

これで文字化け解決です。

助かりました。

■スクリプト
sub z_substr {

local($s,$p,$l) = @_;
$s =~ s/(.)/$1\0/g;
$s =~ s/([\x81-\x9f\xe0-\xfc])\0(.)\0/$1$2\0\0/g;
$s = $l eq '' ? substr($s,$p*2):substr($s,$p*2,$l*2);
$s =~ tr/\0//d;
$s;

}

■使い方
$変数名 =  &z_substr(文字列,開始位置,文字数);
(2017年11月01日)


スポンサーリンク

スポンサーリンク





Copyright(C) 2009-2018 「気ままにMyRoad」 All Rights Reserved.