書かれている内容は日本語なんですが、難しい漢字を表示させる都合でUTF-8で作成されているhtmlファイル(1ファイル)があります。
書かれている内容を、下記のようなカンマ区切りのテキストファイル(UTF-8?)を用意して、複数のペア(1,000組程)を連続して置換したいのですが、シェアウェアなどで手軽に行う方法はありますか?
宜しくお願い致します。
(個数) (旧) (新)
1 01html,a_html
2 02html,b_html
3 03html,c_html
・ ・ ・
・ ・ ・
1,000 ・ ・
No.1
- 回答日時:
「置換」が、“何”と“何”を置換するのか理解しかねますが、
定義の仕方が自分のオリジナル、または専用の場合は、一般的には専用のソフトが必要です。
ファイル名の変換でも、テキストファイルの内容の変換でも、
「文字」を扱うのであれば、Perlの得意分野ですし、
CGI作成をしている方や会社に制作を依頼してみてはいかがでしょうか。
回答有り難うございす。
>「置換」が、“何”と“何”を置換するのか理解しかねますが、
申し訳有りません。
htmlファイルに記述されている文字列です。
grepというんでしょうか、複数のファイルを
同時に検索置換するのではなくて、
1つのファイルのなかの文字列をいろいろな
パターンで置換する必要があります。
(例えばaタグの参照先を変更します。)
環境はwindows2000です(すみません)。
vectorで置換ツールを探してみました。
予めカンマ区切りやタブ切りでテキストファイルに
置換のセットを用意しておいて、上から順に置換する
というツールはいくつか見つかるのですが、sjisの
テキストファイルは扱えてもUTFのファイルだとどうもうまく行かないようでした。
perlは一応インストールしてみて、置換のためのスクリプトを書いてみようとは思っているのですが、なにせこれから勉強をするという段階で自信がありませんでした。
できれば自力で何とかしたいとは思っています。
やっぱりperlの勉強でしょうか。
ありがとうございました。
No.2ベストアンサー
- 回答日時:
ShiftJISで利用できるなら、PerlですべてのファイルをUTF8からShiftJISに変換することが出来ます。
filesというディレクトリの中にUTF8で書かれたHTMLファイルをすべて入れておいて、
filesディレクトリと同じ場所にchange.plというファイルを作成し、
change.pl
files/01.html
/02.html
/03.html
/~
change.plの内容を以下のようにします。
------ここから-------
use Encode;
while(<files/*>){
open(FP, "+<", $_) or next;
local $/="";
my $data = <FP>;
Encode::from_to($data, "utf8", "shiftjis");
seek FP, 0, 0;
print FP $data;
truncate(FP, tell(FP));
close FP;
}
print "OK\n";
--------ここまで------
コマンドプロンプトでchange.plのあるフォルダから
> perl change.pl
として、"OK"が表示されたら、filesの中にあるファイルがすべてUTF8からShiftJISに変換されていることを確認してください。
(変換できていなくてもOKが表示されますので、ご了承ください)
(元々のファイルがUTF8で書かれていない場合は文字化けしますので、
バックアップを取ってから作業してください)
エラーチェックなどもしてないですし、すべての環境で動作しないかもしれませんが、
一応、WindowsXP、ActivePerl5.8(Perl5.8)の環境で確認しています。
もとのUTF8に戻すときは、change.plの
Encode::from_to($data, "utf8", "shiftjis");
という部分を
Encode::from_to($data, "shiftjis", "utf8");
に変更してから、コマンドプロンプトで
perl change.pl
を実行してください。
お礼が遅くなり大変申し訳ありません。
教えて頂いた方法で
・ファイルの文字コードをUTF8->SJISに変更
・置換
・文字コードをSJIS->UTF8に変更
という流れで頑張ってみたいと思います。
コードまで書いて頂いて、本当に有り難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- HTML・CSS HTMLソースの質問 3 2022/07/28 13:29
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- JavaScript 【GAS】WEBアプリでハイパーリンクを挿入したい 1 2023/03/12 19:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlファイルの表示が真っ白
-
eclipseを使ってweb上に表示さ...
-
テキストファイルで下線を引く
-
Dreamweaverでページ全体が文字...
-
HTMLの保存ができない テキスト...
-
DreamWeaverのメリットが分かり...
-
HTMLでどうしても文字化け(エ...
-
Dreamweaverでソースが文字化け...
-
オフラインでのHTMLについて
-
ホームページビルダーで文字化...
-
HTML入門でもう躓いてしまった。
-
ホームページが文字化けして困...
-
ワードで保存したWebファイルが...
-
【文字コード】UTF-8だとDreamW...
-
こんにちは ブラケッツでプログ...
-
テキストエディタ grepの機能...
-
Webデザインテンプレート 使い方
-
ホームページでファイルをダウ...
-
<!DOCTYPE html>あってますか?...
-
<!DOCTYPE html>あってますか?...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlファイルの表示が真っ白
-
Dreamweaverでページ全体が文字...
-
Dreamweaverでソースが文字化け...
-
テキストエディタvscodeでプロ...
-
エクセルで作成した表のハイパ...
-
HTML入門でもう躓いてしまった。
-
オフラインでのHTMLについて
-
テキストエディタ grepの機能...
-
CSSデータの作成方法について(...
-
htmlファイルが開けません。
-
HTMLファイルからリンクタグだ...
-
テキストファイルで下線を引く
-
SSIでインクルードしたファイル...
-
「x-sjis」「Shift_JIS」同じ意...
-
eclipseを使ってweb上に表示さ...
-
SSIでレイアウトが崩れる?
-
ホームページを作りたいのです...
-
半角カタカナ(csvやtxtデータ...
-
URL収集を簡単に行なってリ...
-
メモ帳でデータが消えるのです...
おすすめ情報