perlで扱うutf8フラグやutf-8-macの小ネタ

2014/1/12 [17:40:36] (日) 天気

perlのスクリプトでmacの日本語ファイル名がマッチしない、という話題がtwitterに上がっていた。ネタ的に面白そうなので自分でも試してみたところ、macの日本語ファイル名が正規表現で一致しないことに気づいて、ちょっと吃驚。


フォルダには

・test.txt

・あいうえお

・ペダル

・memo.txt

など、アルファベットのファイルや日本語ファイル・フォルダが雑多に入っている。

この中から「あいうえお」と「ペダル」だけを検索で引っ張り出したい。というのが以下のスクリプト。


use strict;
use utf8;
use Encode;
binmode STDOUT=>’utf8’;
opendir(DIR, ’.’) || die; my @files = grep(!/^\./, readdir(DIR)); closedir(DIR);
foreach (@files){
    my $f = Encode::decode(’utf8’, $_);
    if( $f =~ m!あいうえお! ){
        print $f , " <--- hit aiueo !! \n";
    }
    elsif($f =~ m!ペダル!){
        print $f, " <--- hit pedaru !! \n";
    }
}

ところが、これでヒットするのは「あいうえお」だけで、「ペダル」はヒットしない。


twitterでの流れを追うとどうやらmacのファイルシステムが(日本語ファイル名に)使うのは NFD という形式らしい(Normalization Form Canonical Decomposition)。これをperlで判定するためには NFC という形式に変換してやる必要がある(Normalization Form Canonical Composition)


NFDとNFCで問題になるのが。

・濁音などがはいると文字コードが違ってくる。

・macの場合はさらに一般的なNFDではなくて、utf-8-mac というちょっと特殊なもの。


『Geekのメモ: Mac OS Xのファイルシステムの文字コード』

↑こちらのページが具体的でわかりやすかった(感謝!)


お馴染みの Data::Dumper で読み込んだファイル名と、スクリプト内の文字を比べると、文字コードが違っていた。まさに上記した utf-8-mac の問題。「あいうえお」は濁音が混じってないので文字コードは同じだけど、「ペダル」は濁音部分で文字コードが違っていた・文字長が増えていた。


上記サイトを参考に、CPANから Text::Iconv をダウンロード、インストールしてテストスクリプト。

1)ファイル名を utf-8-mac から、utf-8に変換する。

2)変換したファイル名にutf8フラグをつける。


use Text::Iconv;
binmode STDOUT=>’utf8’;
opendir(DIR, ’.’) || die; my @files = grep(!/^\./, readdir(DIR)); closedir(DIR);
my $h; my $n = 1;
foreach (@files){
    my $f = Text::Iconv->new(’UTF-8-Mac’, ’UTF-8’)->convert($_);
    $f = Encode::decode(’utf8’, $f);
    $h->{$f} = $n; ++$n;
}
foreach (keys %{$h}){ printf qq{%s ::: %s\n}, $_, $h->{$_}; }
print $h->{’ペダル’} ."\n";

↑で、無事確認できた。




ついでに。utf8フラグのおさらい。


文字コードのutf8とperl のutf8フラグは別モノ。


perlがスクリプトで内部処理するのにつけるのがutf8フラグということ…って、素人のわたしはよくわかってないので検証。


use strict;
use utf8;
use Encode;
binmode STDOUT=>’utf8’;
my $v = ’弱虫ペダル’;
while(<>){
    if( $_ =~ m!$v! ){ print $_; }
    my $line = Encode::decode(’ENCODE-NAME’,$_);
    if( $line =~ m!$v!){ print $_; }
}

コマンドラインで引数に渡したファイルを読み込んで、「弱虫ペダル」を含んだ行を出力(プリント)するだけの単純なスクリプト。


・スクリプト自体は文字コード、utf8で書かれている。

・「弱虫ペダル」は文字コードがutf8で、 use utf8 によって、perl の utf8フラグがついている。

・最初の if 文は、utf8フラグのついていないテキストと、utf8フラグのついた「弱虫ペダル」の比較なのでヒットしない。

・Encode::decode で読み込んだファイルのテキストにutf8フラグをつける。

 ENCODE-NAMEはファイルの文字コード。shiftjis、 utf8など。

・次の if 文は utf8フラグのついているテキストと、utf8フラグのついた「弱虫ペダル」の比較なので文字コードが * shiftjisだろうがutf8だろうが * ヒットする。


・スクリプトの文字コードはutf8でも、use utf8をつけない場合(スクリプトにutf8フラグがつかない場合)

・「弱虫ペダル」は文字コードがutf8で、perl の utf8フラグはついていない。

・最初の if 文では入力ファイルの文字コードが utf8 のものだけがヒットする。

・Encode::decode で読み込んだファイルのテキストに utf8 フラグをつける。

・次の if 文は utf8 フラグがついているテキストと、utf8フラグのついていない「弱虫ペダル」の比較なのでどれもヒットしない。


perl の utf8 フラグをつけることによって、スクリプトや、入力されるテキストの文字コードは何でも構わない、という超便利なフラグ(decodeで正しい文字コードを指定する必要はあるけど)


perlのutf8フラグネタでは以前 「utf8移行と自分メモその2」 こっちにも覚え書き(utf8フラグをつけたスクリプトは、変数に日本語が使える、というネタはこちら)


encodeネタでは変換に失敗する文字をチェックするのにencodeの第3引数に、というネタも 「メモ encodeで変換失敗を第三引数でフォロー」 …ほんと、なんちゅーかほんちゅーか。面倒くさい。



https://twitter.com/JunTajima/status/422190121455063040

話の発端からtwitterを追ってみると、utf16だったことが原因だったということでした。

て、utf16使う状況があるのか!?参考になります。ううううむ。難物。


epubcheck が githubに引っ越ししていた

2014/1/10 [13:44:00] (金) 天気

最近epubcheck のバージョンとか確認してなかったなあ、と見に行ったら、code.google.com から移転。


今、最新版は https://github.com/IDPF/epubcheck こちらでリリースしている。


以下は、ここ『ひまつぶし雑記帖』でのお問い合わせ「エラー」について。


去年10月下旬にこの雑記帖に問い合わせフォームを設置したところ、ポツポツ問い合わせをいただけるようになってきた。


「エラーでうまくできない」


EPUB3::かんたん電子書籍作成 はEPUBファイルに梱包するために、一時ファイル・一時ディレクトリを作って作業している(サーバーの容量のこともあるので、一時ファイル類は梱包後に削除している)

ファイルの入出力というやつで、処理は重い。わたしの契約しているレンタルサーバーのプランがショボイせいもあって、大きなテキストファイルや、小さなファイルでも小見出しがたくさんある=ファイル数が多いコンテンツは、セッション切れを起こすことがある。

これはお手上げなので、ローカル版かんたん電子書籍作成か(ただ、ローカル版はコマンドラインでの作業、多少ハードルが高いので)実績もあるWEBサービスのでんでんコンバーターをご案内している。



「EPUBファイルを作った後、Sigilなどで編集したらうまくいかない」


EPUBCheckでエラーを確認して潰していけば、たぶん解決する。でも、メールで話をうかがうと、EPUBCheckのハードルが高い。


インストーラーがあるわけでもないし

・WINDOWSはJAVAのインストール・PATHの設定なんてことまで必要。

・Macもzipファイルをダウンロードしたはいいけどこれってどうするの?

・ターミナル、コマンドプロンプトを使ってコマンドラインにタイプすることになる。


ということで、オススメのEPUBCheckの紹介・解説・使い方ページ。


WINDOWS版

「epubcheckのラクな動かし方 for Windows 7」 ( @ryou_takano )

EPUBCheckの解説とMacアプリ紹介

「うわっ…あんたのEPUB、ダメすぎ…? 検証とその対処」 ( @lost_and_found )



「k△△では登録できるのにi○○(電子書籍ストア名)に登録できない」


ストアごとで素材などのレギュレーションが違うので、ユーザーページなどで公開されているガイドラインPDFを確認してくださいと。

…でもなあ、たとえば画像にしても、画素数とかファイルサイズとか解像度とかファイル形式とか、そんなもん知らんがな、というのが正直なところ。EPUBでValidなものを作ったんだから、それ以外のところはストア側である程度は吸収して欲しい。

・kindleは登録時にコンバートされてそれっぽくなる(そのかわり画質は気にしない前提)

・ibookstoreはエラーで弾かれて登録できない(エラーメッセージを見て自己解決しろよ前提)



お問い合わせのほとんどがこの3つのケース。でも、それだけっちゃそれだけのこと。


EPUBのおかげで(策定・運営しているひとたちに感謝 http://idpf.org )ツールやアプリも揃ってるので、電子書籍を作ること自体は簡単になっている。

上記したエラーも、面倒くさいだけで難しいことじゃない。ひとつずつ・一カ所ずつ試行錯誤すれば解決できるのでめげず挫けず。


タイトル数が増えて市場が膨らんで一般化して、メシのタネのひとつになってくれるととてもうれしい。



↓ちなみに、ツールもアプリもない状態でEPUBファイルを作る艱難辛苦(参考になります)

「エラーメッセージから学ぶ電子書籍EPUB - 最初の一歩」 ( @merborne )


個人出版のネットでの読者獲得

2014/1/9 [11:43:07] (木) 天気

読者獲得、集客というやはり200年前から永遠のテーマ。

去年一年で

・kindleやiBookstore、google playなど個人出版が可能な電子書籍ストアが出揃った。

・電子書籍を作るためのハードルは低いので制作することはそれほど問題ではない。

個人出版の作家、タイトルがどっと増えてくる。書き手送り手が増えて、その読者はどこいるの?という状況か。


商業誌だと。

版元に蓄積している売れ行き傾向のそれなりの把握(ターゲットとなる読者像)や取次=書店のデータ(届けるべき読者層)があった。それを雑誌やコミックス、書籍という形の商売にしていた。

リアル書店に新刊を目当てに来る・ぶらっと足を運ぶひとたちは、当たり前の話、「本を買いに・見にくる」ひとたちなので、本を手に取る・購入するモチベーションはそれなりにあるひとたち。


同人誌だと。

そもそも、書き手送り手の思いを共有するひとたちが集まる、というのが同人誌即売会(同人誌を扱っている専門店もある)

常設ではない即売会は、送り手側も読者側もこの機会を逃すわけにはいかないイベント性の高い場所で双方ともモチベーションが高い。


ネットがよくわからないんだよなあ。

いつでもそこにある(アーカイブされている)のがネットの良いところ。即売会のようなイベント性はない。

どこからでもアクセスできるのがネットの良いところ。わざわざ足を運んで書店に行く必要はないし、店に入ったら本だらけという状況もなく、ふと目を外してテレビを見たりお茶を入れたりできる。


今のところ、電子書籍ストアの集客力販売力におんぶに抱っこ。

新刊を継続して出版して積み上げ・広げて読者に発見されるのを待つ。…読者の温度はそれほど高くないのでよほどの幸運が必要で、牧歌的というかのんびりした話(とはいえその幸運を逃さないために継続・積み上げは必須条件、大事大切重要)


個々では認知も進まないだろうから、送り手が集まってレーベル化などでブランディングするのが面白いところだと思う。実際にそういう動きもある。


『日本独立作家同盟』http://www.allianceindependentauthors.jp

『ネット出版部』https://www.facebook.com/groups/125351907617923/


ネットは始めるのが簡単なので、辞めちゃうのもスグ(サービス提供して想定より少ないとはいえユーザーがいるのに投げ出すケースが散見)「ダメだったからやーめた」では根付かないし、読者からの信用も得られなくて、読者の温度も上がらない。「これだからネットは」などと冷えこませることにもなりかねない。

ぜひ頑張ってほしい。


10年以上前、まだ底辺エロ出版社で編集者だった頃の雑記。


『赤字かぁ。。。。』 (2003/11/10)


最初、想定した読者層はどのような属性のひとたちなのか、そのマーケットはまだあるのか、彼らの購買行動に変化はあったのか。
現状の誌面から、どんな読者が買ってるのか・読んでるのか、想像できるかどうか、が全てだ。ここで想像できないようなら今たずさわってる雑誌にはまったく意味がない・売れなくて当然。

独身30歳プラマイ2歳のサラリーマンで月給がぎりぎり手取り20万。彼女とは去年別れたか、今現在別の女性をターゲットにしてる途中で…とか。
結婚して小学校にあがったばかりの長女と幼稚園の長男。ずっと子供にかかりきりだった女房が少しまた可愛くみえてきて驚いたりするやっぱり30代サラリーマン。ローンもけっこう抱えこんでる…とか。

極端だけど、編集ってのは、読者ひとりひとりの顔が想像できるような本作りをしないとダメなんだよねぇ。

わたしはたくさん休刊、廃刊にした3流なのでエラソなことは言えないけど、ロゴや表紙、判型を変えたり、社内政治で根回ししまくりとかしながらも継続したから、雑誌からの成果物=コミックスなどが産まれてきた。というか成果物が形になるまでジタバタと(バブルの残り香もあって辛抱のきく時代だったけど)


法要で集まってたまにやってくる親戚のオヤジみたいなまとめになるけど。

「継続大事」

です。


今年は電子書籍の成功例が欲しいところ

2014/1/5 [21:06:36] (日) 天気

ダウンロード販売の強みは「いつでも、すぐに、その場で手に入る」

これは裏返せば「今、買う必要はない」ということでもある。


この手の話はあちこちで100年前から言われてることで、何を今さら感でもあるんだけど、電子書籍が始まったのは去年からなので、古い酒を新しい革袋に入れてみよう(あれ?たとえが違うっぽいか)


底辺エロ出版社を辞めた後、5年ほど動画配信サイト(ダウンロード販売)にいたので、ダウンロード販売とその商品の売上傾向については多少知っているつもり。守秘義務があるのでぼかすけど、当時はアニメやアダルト、ドキュメンタリー、映画など、一日4桁の中の上あたりの本数を売っていた。また、大手ECサイトや伝統のあるアニメ会社や、海外大手のドキュメンタリー会社のバックヤードもやっていた。


セール(安売り)をすればその期間は売れる。価格が下がってもアクセスやダウンロード本数が伸びて、金額的にはいつも以上の売上だし、新規会員獲得にも繋がっていた。

「安くなっている今のうちに、買う」のは、小売りの特売やタイムセールと同じ衝動・モチベーション。「今、買う必要がある」のだ。


セール以外の仕掛けはなかなか難しかった。

・特定レーベルを売り出そうと、取材して特集ページを作って、そのページへの動線をサイトのあちこちに入れてサイト内露出をはかって、先方にもリンクをお願いして、とやったものの、該当レーベル作品の売上は本数、金額ともにせいぜいそれまでの1割増ぐらいのイメージ。

・毎月何日は***の日と特集ページを作ってみた。小売りの「毎月2のつく日はニャンニャンの日でペット用品が2割引」と同じ。リピーターを増やす、行動を学習してもらって他の商品もついで買いを誘いたい、という意図。メルマガとの2段構えで仕掛けてみたんだけどコンテンツホルダーと交渉にならず、肝心の「2割引」ができなかったので効果はなかった。2割引がなくても、動機づけになってくれれば、とちょっと甘かった。

どちらも「今である必要はなかった」ということ。


・新作映画が公開、テレビで新シリーズが放映開始などというリアルでの展開があった時は、ゼロが1になった。事前に情報をもらっていて特集ページ(ランディングページ)などをきちんと用意できていたら、その1が10になるぐらいのインパクトはあった。新作でなくても正月だとかお盆だとか、テレビで特集が組まれるようなものがあったら、それに関連した商品・作品の売上は金額も本数も伸びた。

「まさに今、みたい」ということ。



電子書籍もセール(安売り)すれば売れるだろうけど、ソレジャナイ、よね。

電子書籍の場合、リアル側の動きとしては紙の書籍が全国の書店にて絶賛発売中。実際、横山秀夫の『64』などリアルでベストセラー本は(電子書籍99円投げ売り価格ではないにも関わらず)電子書籍でも売れている。上記した動画と同じように、リアル側での動きがネットにやってくる。


電子書籍の面白いところは。

書店が減っていて全体の売上も落ちている構造不況まっただ中だ(「出版・読書メモランダム」の出版状況クロニクルがとても参考になるので興味のかたは必読 http://d.hatena.ne.jp/OdaMitsuo/ )出版社は名もない新人の作品を出す冒険も難しい。電子書籍で売れてるっぽい作者作品を見つけてそれを紙書籍として取次経由の流通に流すという絵(ネット→リアル)は、他の業界よりハードルが低くて、今後増えてくるだろう。

(別の話になるけどコミケなどの同人誌即売会で売れている=部数がある程度計算できるサークル、作家を出版社がスカウトするような感じ。実際、昔は名刺を配って回った)


すでに、電子から紙へは「早川書房」藤井太洋『Gene Mapper』や、「主婦の友社」梅原涼『お前たちの中に鬼がいる』があって、「東京創元社」十市社『ゴースト≠ノイズ(リダクション)』がある(わたしの観測範囲)

記事によると定価2000円弱のハードカバーが000部ほど売れたというのは新人としては凄いことだと思う。

1/10追記 【お詫び】この部分、勘違い・思い込みしたまま未確認の情報です。関係するかたすべてに、ご迷惑をおかけしたことを深く反省、お詫び申し上げます。


ただ、この現状では、ネット→リアル止まりで、これがゴールだと困る。この先、リアル→ネットに還元した動きが欲しいところ。

そのための成功例があればなあと思っていて、上記の3冊、3人の次の作品、継続して発表される作品に期待。ネット内で盛り上げるならまずここ。Amazonやibookstoreなどが紙書籍発売と同時にその作品・作者の電子書籍をピックアップして積極的に紹介、売るようになれば面白い。それがひとつのステータス・権威になる。

紙書籍の発売が、電子書籍を「まさに今、読みたい」と思わせるイベントになる、かもしれない。



なんてことをぼーっとまとまりもなく。

去年は電子書籍が始まってまだ1年の手探り。今年も変わらず厳しいとは思うけど、売れる売れないとか商売の話じゃなくて、小説、コンテンツの中身の話で盛り上がって欲しい。そっちが本当だと思う。…ってダラダラ書いた上記のうわごとを無視して〆にしよう。


電子書籍の校正・修正作業

2014/1/4 [18:45:35] (土) 天気

現状、電子書籍は校正・修正作業が難しくて悩みどころ。


修正作業する側は、EPUBの中のXHTMLの該当箇所を検索して直す。どこを修正するのかさえわかれば、どのような指定でも作業的にはほぼ同じなので、それほど大変なことではない。


校正する側の負担、というか面倒が大きい。

元原稿(ワードやPDF)と端末表示をつき合わせて、端末表示で誤植など見つけたら、元原稿の該当箇所に赤入れ(コメントを入れたり)する。

紙のようなゲラがあればそこに直接赤入れできる。端末表示に紙のような一覧性も求められないし、ページを行ったり来たりするようなことも向いていない。あれ?さっきの単語どこだっけ?で戻る気力も萎える。

校正なんて、やってもやっても誤植が湧いて出てくるというのに、元原稿と端末表示を見比べてやってたんじゃ、いつまでたっても校正が終わらない。


また、「何ページの何行目」というのが電子書籍にはないので、電話で済む簡単な校正にも前後の文・パラグラフをつけて指定する必要がある。

(EPUB3はページリストという元のページを指定できる仕掛けがあるんだけど、対応しているリーダーがほぼ?ないので使えない)


電子書籍もゲラというかプリントアウトが必要かもしれないニッチな先祖帰り。

今日、ツイッターで流れてきたepubをPDFに変換するというネタを見て思った。残念ながら今日紹介されていたものは日本語に対応してないけど、WEBサービスやアプリなど「epub pdf変換」で検索すると出てくるので試してみる(ブラウザのアドオンで自動キャプチャなどは手軽手頃な感じかなあ)レイアウト・デザインの完全な再現は難しくても、文字校、ルビ、下線、太字のチェックぐらいなら使えそう。


ついでに、ふたたびみたびTeXもインストールした。

以前、2010年だか12年ごろにkindleで出版しようとPDFでも行けるのかと思って試してた残骸スクリプトも引っ張り出した。TeXもEPUB(XHTML)もマークアップ言語。大雑把にコンバートできる、かもしれない。


プリントアウトじゃなくて、もっといいやり方はないもんだろうか。うううむ。


<<2026/2>>
       
1234567
891011121314
15161718192021
22232425262728
検索:

【最近の20件】