
また質問です。よろしくお願いいたします。
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を見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
重複するデータを抽出できる秀...
-
sprintfについて
-
教えて!perlから.exeファイル...
-
IEのリロードボタンを押すとデ...
-
DOSコマンドで、標準出力を出力...
-
機器のI/OをArduinoでSDに記録...
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
close()で例外が投げられる理由
-
.WFAファイルを変換する
-
MATLAB グローバル変数の宣言
-
batファイルでrenameができませ...
-
エクセルVBAでCSVファイ...
-
fgets で値が取得できない
-
【エクセル】改行無しテキスト...
-
shellのコマンド deffの差分の...
-
ReadLineでの読み出し行を指定する
-
openした後、closeしないでプロ...
-
ExcelをCSV書き出す場合のシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複するデータを抽出できる秀...
-
awkスクリプトでダブルクォーテ...
-
sprintfについて
-
DOSコマンドで、標準出力を出力...
-
文字コードの変換(Shift-JISか...
-
Perl<->Oracle間での文字化けに...
-
[Perl]ファイル出力のエンコー...
-
エクセルVBAで素数だけを出力す...
-
データの選択
-
apacheの動作について
-
「print関数は出力先のファイル...
-
教えて!perlから.exeファイル...
-
ファイル出力の改行コードをLFに
-
PerlからのCSV出力
-
Active Perlでsleepを使う。
-
[awk]uniq -cで複数ファイルの...
-
バッチファイルで、記号を含む...
-
EUCで出力されるプログラムをS-...
-
htmlから、ファイル、もしくはC...
-
リファレンスについて。
おすすめ情報