shiftjisで書かれたperlのプログラムで、
substrで文字を分割したところ、
分割した文字が化けてしまいます。
あいうえおかきくけこと入力すると、
$leftname =・
$rightname =ア
と文字化けしてしまいます。
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,$p2):substr($s,$p2,$l*2);
$s =~ tr/\0//d;
$s;
こちらを入れると文字化けが対応できるとのことですが、
文字化けの解消がされませんでした。
こちらの対処方法をご教示いただければと存じます。
宜しくお願いいたします。
試したコードは下記の通りです。
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; } sub bunkatsu { my $str = $name; my $length = length $str; if ($length =10) { $leftname = &z_substr($str, 0, 5); $rightname = &z_substr($str, length($str) - 5, 5); } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/18 07:36
2018/04/18 09:31
2018/04/19 01:40
2018/04/19 03:47
2018/04/19 03:50
2018/05/07 01:07