
No.1ベストアンサー
- 回答日時:
素直に、EUC漢字コードを利用すれば良いような気がしますが。
。。漢字をプログラムで認識させる。と言うのは結構厄介です。人間は全体を一度に見ることができるので、それを漢字と認識しますが、プログラムでは左端から1バイトづつ見ていくので、それが漢字の一部分なのか、そうでは無いのかが、判断しにくいからです。
一文字づつ区切って見るのが一番手っ取り早いかな。と思います。
$s = '飯能申込表示';
$r = &add_yen($s);
print $r. "\n";
exit(0);
sub add_yen {
my($s) = @_;
my($r, $i, $c);
$r = "";
for $i (0 .. length($s)-1) {
$c = substr($s, $i, 1);
$r .= $c;
if ($c eq "\\") {
$r .= $c;
}
}
($r);
}
ただし、この処理は、漢字を漢字として認識させる処理を省いて、簡便な処理にしてあるので、完全なものでは無いと思います。(全角文字と半角文字が混在すると、誤動作する可能性があると思います。)
また、
$s = '飯能申込表示';
は定義できても、
$s = '申込表示飯能';
は定義できません。(能の2バイト目が \ なので、' がエスケープされてしまう。)
ファイルから取り込む分には問題ないと思いますが。
初めにも書きましたが、この様な面倒な問題に拘るより、EUC-JP でコードを書いてしまった方が何倍か楽になる様な気がします。
ありがとう御座います。
おおっ! そうなのですか!
EUCコードには、\の混じる文字が無いのですね!!!
感動です!
それも私は初耳なので、非常に勉強になります。
独学とはなんと遠回りなものか、パソコン利用歴13年にして、この有様。
(ついでに、いまだにブラインドタッチ出来ず、かな打ちなので、ローマ字打ちできません。トライしたりしていますが、挫折して…。ついでに、かな入力とローマ字入力の切り替えがAlt+平仮名で出来ることを最近知りました。)
しかし、それだけにシフトJISからは離れがたいものがあり、ご教示いただいたコードを試させていただきましたら、ファイルから取り込み、ファイルに書きだす場合は、半角が入っても正しく動作します。
…というより、全部半角でやっているからこそ、正しい処理が出来るのかな???
> 能の2バイト目が \ なので、' がエスケープされてしまう。
多分、それが正しいのだと思います。どうやっても、漢字の真ん中には、\は入れられませんし、入れても、同じ\\ですから、後に入れても先に入れても同じで、次の文字がおかしくならないようにしたのでよい場合もあると思いますので…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- PDF 2つのPDFを重ねる方法はありますか? 4 2023/01/30 14:04
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- その他(プログラミング・Web制作) findコマンドでのグロッピング 4 2022/07/04 17:51
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- 画像編集・動画編集・音楽編集 inkscapeで作成した図の保存の仕方とその保存したファイルの編集の仕方 1 2022/09/22 09:33
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームの太字を置き換える
-
自動的にエスケープを付けて別...
-
ページングで「前の○件」の方法
-
問題作成のWebアプリの作り方を...
-
右詰表示
-
HTML
-
続・開始時間、終了時間のCGI設定
-
JavaScriptのことで
-
画像ファイルが崩れる
-
JSONで文字列が長い時
-
改行
-
Spamassassinでsendmailが通ら...
-
HTMLのアクセスキーはselectに...
-
falshファイルのtitolタグ
-
大至急お願いします。出力で悩み。
-
CSVファイルに出力
-
リストボックス内の文字について
-
プルダウンメニュー(セレクト...
-
配列を使っての文字列抽出について
-
phpからmysqlのテーブルにデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6で、長い時間かかる処理...
-
実行中の変数の中身をイミディ...
-
初回起動のみ判別したい
-
C言語のflagの使い方が分かりま...
-
処理終了後、他のページへジャ...
-
C#でDataFridViewの行をすべて...
-
回数を指定しないで空白行まで...
-
SetDlgItemInt( ) c++
-
perl:ループのカウンタ変数の値...
-
問題作成のWebアプリの作り方を...
-
UWSC SLCTBOXもしくはSELECTに...
-
STDINによるキーボードからの入...
-
Pythonでこのプログラミングを...
-
VBAのCallステートメントについて
-
Valueの値によってActionの送信...
-
フラグをたてる、、の意味を教...
-
C言語のプログラミング
-
arduino の割り込み処理について
-
教えてください。 画像処理のプ...
-
スカラー変数に処理を入れる
おすすめ情報