
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> 文字列「あいうえお」があるとしてchop関数を使うと「あいうえ」となるのでしょうか。
Perlのバージョンと、状況とによります。
5.8.0 以降で、マルチバイト文字の一文字をきちんと認識するように
なっていれば、"あいうえお" を chop すると きちんと "あいうえ" になります。
一番簡単な例だとこんな感じです。
use strict;
use warnings;
use encoding 'sjis';
my $str = 'あいうえお';
print $str, '→';
chop $str;
print $str, "(", join(':', unpack('H2'x (length($str)*3), $str)), ")\n";
実行結果:
あいうえお→あいうえ(e3:81:82:e3:81:84:e3:81:86:e3:81:88)
ちなみに use encoding 'sjis'; の行をコメントアウトすると出力は
あいうえお→あいうえ・82:a0:82:a2:82:a4:82:a6:82::::::::::::::::::)
のようになります。
この場合は、一文字を正しく認識していないので、'お'の後ろ半分を
ぶった切ってしまっています。
No.1
- 回答日時:
文字列の最後尾の1バイトを削除します。
通常は文字列の最後尾の改行コードを取り除くのに使いますが、改行コードが入っていないと、最後の1バイトを削除します。通常2バイトで1文字の日本語の文字列でこれをやられると、改行コードの入っていない場合には最後の1文字が文字化けします。
chopよりもchompを使う方が安全です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールヘッダのMIMEエンコード...
-
splitの逆の処理
-
perlで文字列を短く(圧縮)し...
-
Malformed UTF-8 character
-
文字コードの%E3%80%とは何です...
-
エクセルで数値を全角文字(カ...
-
CSVファイルの中で、「 , 」カ...
-
CString から LPCTSTRの型に変換
-
VBA 文字に半角が含まれて...
-
「一角」って何でしょうか
-
住宅にカナを入力する際に丁目...
-
フォントの色を保持したままセ...
-
WORDで改ページすると時々グレ...
-
【VBA】エクセルで値のみクリッ...
-
各項目がダブルクォーテーショ...
-
.NET3.5におけるキーボードの「...
-
全角/半角キーをSendkeys関数で...
-
データにカンマが入ったCSVデー...
-
マクロを使ってフォルダー内に...
-
JPY ¥1,500.00は日本円でお幾ら?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Malformed UTF-8 character
-
splitの逆の処理
-
Perlで Right関数に近い処理を...
-
パイソンエラーについて
-
Perl(Windows)の文法について
-
文字列と数字を含むセルから数...
-
VBA like演算子について
-
ワイルドカード処理
-
文字列検索(例えばindex関数)...
-
「ー」を削除するとスカラーの...
-
Perlでのの抜き出し方法
-
VBS:文字列を元に外部リストか...
-
perlでの判定がうまくいきません
-
'\\"'はなの意味ですか
-
perlを使用しての特定行抽出に...
-
Perl(cgi)からPerl(cgi)への引数
-
GDBでデバッグするとき文字列の...
-
qqと""の違いは?
-
数字を文字列に変換し短縮化する
-
何度も出現する文字列AAのうち...
おすすめ情報