- 締切済み
日本語文字列の指定長(byte)切出し
以下は日本語文字列(EUC)の指定長(byte)切出し関数なのですが、 これをShift-JIS版にするにはどうすれば良いのでしょうか? ================================================================ sub jcut { # 日本語文字列(EUC)の指定長(byte)切出し local($string, $length) = @_; if (substr($string,$length-1,1) =~ /[\x80-\xff]/) { $length++; } return substr($string, 0, $length); } ================================================================ 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kabaokaba
- ベストアンサー率51% (724/1416)
回答No.2
- buffalomasa
- ベストアンサー率66% (70/106)
回答No.1
補足
substrはバイトでカットするため、半角、全角混じり文字列の全角の真中を切ってしまうことが有ります。 そのため、最後尾の文字が文字化け表示されます。 これを避けるためには、カット位置が半角か全角か調べて、全角の真中であればカット位置を調整してやる必要があります。 そういう関数なのですが、Shift-JISの場合は適用できません。