▲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日)
|