また質問です。よろしくお願いいたします。
WindowsXPでperl5.8.7の環境です。
出力したファイルの文字コードをEUC、改行コードをLFで出力をしようとしています。
なお入力、出力ファイルには日本語が含まれています。
文字コードは希望通りいくのですが改行コードがうまくいきません。
Windowsのデフォルト改行コードCR+LFが出力されてしまいます。
(Terapad(エディタ)の改行コード表示がこうなっています。)
(1)binmode(OUT);で行うと、 Wide character in print at jisyo01.pl line 63, <IN> line 97.
というエラーが表示され、出力されない。
(2)$xxx[$i] =~ s/\x0D\x0A/\x0A/g; で改行コードを置換しようとしても、置換されず、 CR+LFである。
(3)$/ = pack("C", hex("A"));で 改行コードをchompした後、print OUT "$/";としても、 CR+LFのままである。
上手くいきません。いい方法ないでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
#こんな感じでどうでしょう
use encoding 'UTF-8';
open(IN, "<:crlf:encoding(shiftjis)", "SJIS.TXT");
open(OUT,">:unix:encoding(euc-jp)","EUC.TXT");
while(<IN>){
print OUT;
}
close(OUT);
close(IN);
BLUEPIXYさん.たびたび申し訳ありません.
出来ました.本当にありがとうございます.
この質問自体は終わりなのですが,もう一つよろしいでしょうか(すみません).
ちょっと違う質問をしますが,BLUEPIXYさんは
このような文字コード変換において,どのような
本またはホームページを参照しているのでしょうか.
私も本格的に学びたいため教えていただけないでしょうか.
もしよろしければでいいので,よろしくお願いいたします.
No.4
- 回答日時:
>どのような本またはホームページを参照しているのでしょうか.
私の場合で言うと、
文字コード変換(5.8からは便利になりました^^)云々に限らずに、Perlに関して言えば、
「Perlクックブック」オライリー・ジャバン
がバイブルです。
いわゆるレシピブックです。
簡単な参照には、
「新Perlの国へようこそ」サイエンス社
を使っています。あまり分厚くなくて(分厚いと参照が大変)、良くまとめられています。)
私は、線が細い(64K)ので(やたらヒットしても大変;;)、ホームページ上を検索することはほとんどありませんが、
ActiveStateのActivePerlを使っているので、
http://aspn.activestate.com/ASPN/docs/ActivePerl
は、参照することがあります。
No.1
- 回答日時:
私はエラーになりませんでした。
結果は、バイナリエディタで確認しました。
#!Perl
use strict;
use NKF;
open(OUT, ">out.txt") or die;
binmode OUT;
while (<>) {
print OUT nkf("-e",$_);
}
__EOD__
返信遅れました.ありがとうございます.
NKFモジュールというのがあるんですね.
知りませんでした.
ただWindows環境でcygwinは用いない為,
上のBLUEPIXYさんの方法を用いたいと思います.
ありがとうございました.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 改行コードについて 4 2022/08/13 14:20
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/20 09:22
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
ファイル出力の改行コードをLFに
-
DOSコマンドで、標準出力を出力...
-
Perl 内で実行される Perl が S...
-
エクセルVBAで素数だけを出力す...
-
htmlから、ファイル、もしくはC...
-
教えて!perlから.exeファイル...
-
Active Perl の動作異常について
-
ExcelをCSV書き出す場合のシー...
-
window.open でのファイル指定方法
-
Perlで特定行から特定行までを...
-
batファイルでrenameができませ...
-
ReadLineでの読み出し行を指定する
-
FindFirstFileとFindNextFileで...
-
バッチファイルの作り方(CSV→...
-
close()で例外が投げられる理由
-
MATLABのm-fileについて
-
一定時間が経過したフォルダの削除
-
パスから最後のディレクトリだ...
-
全角と半角文字が混在している...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
エクセルVBAで素数だけを出力す...
-
教えて!perlから.exeファイル...
-
sprintfについて
-
Perlでファイルの末尾から指定...
-
CGIから外部コマンド実行時の標...
-
重複するデータを抽出できる秀...
-
ファイル出力の改行コードをLFに
-
timeコマンドの結果をテキスト...
-
sprintfで10進数を桁数指定で16...
-
log2の「正確な」計算方法
-
機器のI/OをArduinoでSDに記録...
-
Perl<->Oracle間での文字化けに...
-
Perl中で teeを使っても戻り値...
-
テキストファイルから日本語部...
-
バッチファイルで、記号を含む...
-
htmlから、ファイル、もしくはC...
-
perlでの出力先設定
-
標準エラーと標準出力をファイ...
おすすめ情報