SJISの「脳」の文字コードは?
\x94\x5C
しかし、場合によって読み込んだ文字の文字コードを表示させると\x94\x5Dになってしまいます・・・。
:例:
「脳内」のみを書いたSJISテキストファイル
「力脳」のみを書いたSJISテキストファイル
文字コードの取得方法に誤りがあるのでしょうか?
use strict;
use warnings;
use strict;
use warnings;
open(FH,"text.txt") or die($!);
while (my $buff= <FH>){
while($buff=~ /([\x81-\x9F\xE0-\xEF\xFC-\xFE][\x40-\x7E\x80-\xFC])/){
my $two_byte_sjis = $1;
$two_byte_sjis =~ s/\x5C$/\x5C\x5C/; #スクリプト上エラーがでないようエスケープ
my $replace = $two_byte_sjis;
$buff=~ s/$replace//g; #無限ループしないよう$buffから削除
print "$replace => ";
$replace =~ s/(.)/sprintf('%X', ord($1))/eg;
print "$replace\n";
}
}
close(FH);
No.1
- 回答日時:
C:\Documents and Settings\All Users>perl -e "print qq{\x94\x5c\x94\x5d
}"
能脳
945c は 脳 じゃなくて 能 では?
No.2ベストアンサー
- 回答日時:
こんにちは、
文字コードは unpack ですかね
print unpack "H2" , $char;
みたいな。
で、この質問とは直接関係なくて前の質問のヤツなんですけど、
ちょっと勉強してみました。
my $ASC = qr/[\x00-\x7F\xA1-\xDF]/;
my $LEFT = qr/[\x81-\x9F\xE0-\xFC]/;
my $RIGHT = qr/[\x40-\x7E\x80-\xFC]/;
my $MULTI = qr/$LEFT$RIGHT/;
$str =~ s/((?:$ASC|$MULTI)? $LEFT \x5C)(?!\x5C)/$1\x5C/gmxo;
でいいみたいです。
要は、#1 moon_piyo氏の回答に、否定の先読みで \x5C を拒否ればいいみたいですね。ベンチマークとってみたらえらい早かったです。
勉強になりました。
こ、これはすごい・・・。
否定の先読みだけでこうまでも変わるんですね・・・。
考えてみれば当たり前なんですが、考えてすらいませんでした(汗
本当に感謝です!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのプログラミング 部分入れ...
-
Strawberry Perl for Windows ...
-
アルファベットに付いて質問し...
-
Perlで同じフォルダにある任意...
-
perlでリテラル値はメモリにど...
-
ペプシコーラとコカ・コーラとD...
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
perlで2次元配列をサブルーチ...
-
perlのrequireの動き方について...
-
perlについての質問
-
Blenderについて
-
Perl の外部モジュールの利用方法
-
perl このテキストファイルを簡...
-
Perlでファイルの末尾から指定...
-
秀丸での一括変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
openした後、closeしないでプロ...
-
perlをバージョンアップしたら...
-
INDIRECT 横に再度抽出したい
-
Perl の外部モジュールの利用方法
-
Perlで特定文字列から特定文字...
-
Perlのエラーについてご教授く...
-
bashスクリプト
-
Strawberry Perl for Windows ...
-
perlで2次元配列をサブルーチ...
-
TeraPadエディターの操作方法に...
-
アルファベットに付いて質問し...
-
perlのflock関数でロックをかけ...
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
Wallpaper Engineでおすすめの...
-
Perlで時間の計算
-
perlのrequireの動き方について...
-
perlでリテラル値はメモリにど...
-
画像が表示でnull; this.src
おすすめ情報