skillup

技術ブログ

Perl

Perlでの動的改行コード読み込みに関して+cp932ネタ

投稿日:2016年12月12日 更新日:

本日はperlにて改行コードを動的に読み込む方法です。

動的な改行コードの判定・読み込み

実務で古いMACで作られたCSVが読み込めないという事態が発生。また当然、win環境でも読み込むために、動的に改行コードを判定してなおす必要が出てきました。

いろいろ悩んだんですが、まず改行コード判定の際には下記プログラムでの読み込みを行いました。

そして実際に改行コードを読み込ませるのは下記のプログラムです。

多分、直すとこあると思うんですが・・・どうなんでしょう。

Mac のExcelで作ったCSVを適切にPerlで読むには?
Perlで改行コードがCRのファイルを読み込む方法

CPANライブラリ
http://search.cpan.org/~makamaka/Text-CSV-1.33/lib/Text/CSV.pm

ShitfJISとcp932について

もう一つ実務でローマ数字のみが文字化けという現象が発生しました。

どうやらcp932ファイルをsjisで読み込むとこのような事象が発生するようです。cp932とShitJISは完全に一緒ではないので注意しましょう。

CP932変換表の問題が顕在化する例

-Perl
-,

執筆者:


  1. […] Perlでの動的改行コード読み込みに関して+cp932ネタ […]

  2. あやたか より:

    こういうときに m/\R/ を使うのではないかと思いました。

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Perlでのデータベース差分チェックツール

Perlにてデータベースの差分が発生したときに簡単に差分を埋めるためのSQLを書くライブラリがあったので紹介。 ライブラリがない場合、cpan SQL::Translator でまずライブラリをCPA …

no image

Perlの文字コードに関して その2

前回のエントリーでPerlで文字列を扱う場合は内部文字列に変換しなくてはいけないことを学びました。 Contents1 内部文字列を使うわけ2 文字コードの変換 内部文字列を使うわけ ところで何のため …

no image

大容量データの取り込みについて

普段プログラムを組むときには可読性や保守性が大事なポイントになりますが、それと同じぐらい速度やメモリ効率なんかも大事です。 今回は少ないメモリでもなんとかできるような工夫をちょっとかいていこうかなと思 …

no image

Perlの文字コードについて その3

実際のPerlでの文字処理に関しては以前の記事でも書いたように下記の原則を守ればOKです。  原則1 外部から入力された文字列はデコードして内部文字列に変換する  原則2 外部へ出力する文字列はエンコ …

no image

Perlの配列、ハッシュ系の処理(grepを中心に)

Perlの配列やハッシュで便利そうな処理をgrepを中心にいろいろ調べてみました。 Contents1 grepとは?2 grepを使った配列処理 基本3 grepを使った配列処理 ハッシュを含む多次 …

アーカイブ