最近Perl5.8にし、文字コードをUTF8をベースに使うようになりました。
以前は、5.6を使っていたので、文字コードについては、あまり意識せず、
出力時のみ気を使っていました。Perl5.8からPerlIOというものがあり、
いまいち理解しづらいのですが、PerlIOについて詳しく書かれている書籍(5.8以上に特化)
を探しているのですが、お薦めがございました ら是非お教えください。
最悪、洋書でも構いません。
IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする
設定方法がしりたいです。
No.1ベストアンサー
- 回答日時:
とりあえずCPANから,書籍の案内を探すとか
オライリーのサイトを見るとか
>IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする
これはオンラインドキュメントの
encodingモジュールとかそのあたり
洋書でよいならこのドキュメントでもOKでしょう.
ところで5.8の和書ってあるんでしょうか
#らくだ,リャマは5.6でしたっけ
知り合いの某コンピュータ出版社の編集さんに
聞いたら,5.8の書籍の企画はないとか
いってたくらいで(^^;;;
No.4
- 回答日時:
>>:encoding(utf8)では正しく変換してましたが、
>>:encoding(utf-8)では正しく変換している部分はかなりありますが、一部正しく変換しておりません。
ちょっとわからないです。
というか、UTF8ベースで書いている(use encoding 'UTF-8')時には、出力のencodeは、必要ない(デフォルトでUTF8で出力される)です。
>utf8, utf-8と似たような表現方法がありましが、
>大違いなのでしょうか?
使っているモジュールでちょっとちがうのかもしれません。
私には、ちょっと違いはわかりません。
No.3
- 回答日時:
>:encoding() プラグマ?を使うんですね。
「:encoding()」
は、レイヤーといいます。いわゆるPerlIOです。PerlIOレイヤー。
他には、
:unix
:crlf
:raw
とか色々のレイヤーがあります。重複指定もできます。
例えば
:raw:encoding(shiftjis)
とか
binmode STDOUT => ":raw:encoding(UTF-16LE)";
とか
use encoding 'utf8' STDOUT => ":encoding(shifitjis)";
みたいなこともできます。
No.2
- 回答日時:
>IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする
こんな感じ
---------------------------
use encoding 'UTF-8';
use IO::File;
$in = new IO::File;
$out = new IO::File;
$in->open("EUC.TXT", "<:encoding(euc-jp)");
$out->open("SJIS.TXT", ">:encoding(shiftjis)");
while(<$in>){
print $out $_;
}
$out->close;
$in->close;
--------------------------------------------------
また、IO::Fileを使わないで
use encoding 'UTF-8';
open(IN, "<:encoding(euc-jp)", "EUC.TXT");
open(OUT,">:encoding(shiftjis)","SJIS.TXT");
while(<IN>){
print OUT;
}
close(OUT);
close(IN);
でいいです。同じ意味。
この回答への補足
なるほど、 :encoding() プラグマ?を使うんですね。
この例題を使わせて頂いて、以下の2つを確めた所
>:encoding(utf8)では正しく変換してましたが、
>:encoding(utf-8)では正しく変換している部分はかなりありますが、一部正しく変換しておりません。
utf8, utf-8と似たような表現方法がありましが、
大違いなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- Excel(エクセル) マクロ、条件付き書式のfont.color 1 2023/03/28 01:10
- Excel(エクセル) エクセルのマクロを教えてください。 1 2022/03/30 09:29
- その他(法律) 子供の名前(漢字)を改名された方で 裁判所に提出する申し立ての理由として 通称名として永年使用した。 1 2022/05/17 17:04
- その他(プログラミング・Web制作) awkのtoupper() 1 2022/10/21 20:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perl utf8上でshiftjisをデコード
-
VBAコードを張り付け後のエクセ...
-
バッチファイルの作り方(CSV→...
-
batファイルでrenameができませ...
-
close()で例外が投げられる理由
-
vba dir の相対パス
-
MATLABのm-fileについて
-
文字列をカウントする方法
-
至急お願いします。C言語で.img...
-
一定時間が経過したフォルダの削除
-
JavaでCSVファイルを高速に読む...
-
画像アップロード機能を追加し...
-
csvファイルの横方向への改行に...
-
Perlで特定行から特定行までを...
-
【エクセル】改行無しテキスト...
-
perlのエディタでおすすめを教...
-
フォルダ内のファイルを全て開...
-
PICでFatFsでオープンした内容...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perl cgiの文字化けを直したい ...
-
HTTP::Request::Common qw(POST...
-
utf-8のCSVをshift_jisに変換し...
-
ファイル出力をUTF8Nではなくて...
-
[Perl]Shift-JISのXMLを解析する場
-
perlのmysqlで文字化けをする、...
-
文字を一文字ずつ区切りたい
-
perlでuse utf8でsjisのファイ...
-
Perl utf8上でshiftjisをデコード
-
does not map to shiftjis は解...
-
DBIモジュールと Perl5.8
-
消費税の計算で 税込価格から...
-
Data::Dumper;でダンプ後表示し...
-
Perl UTF8で出力
-
perlをwindows環境でshift-jis...
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
おすすめ情報