perlのutf8の実装はやっぱりまだ、不安定やね
ファイルに出力したデータのunpackで数%程度の文字化け
binmode,binmode :utf8どちらをつけてもダメ
そりゃぁ、AじゃなくてUだもんなぁ、packの書式とか思う。
でもどちらかというと、packしてバイナリ化したデータの入力でコケている気もする。
というわけで、素直に、
なんというかpureperlでのutf8処理の時もutf8の一部の文字処理が怪しかったけど、おまえもかって感じ
あとnstore とかstoreとか・・・いや、気持ちはわかるけど、ファイルの先頭にネットワークバイトオーダなのか、ホストバイトオーダーなのか書き込んで自動で判別してよとか思う。Intelマシンの方が多い弊社の環境ではリトルエンディアンをデフォルトとして、ビックエンディアンのマシンでオーダを置換してくれた方がありがたいんだが(wって読み込みが常にretreave関数のみでnretreaveが無いって事はやってくれるのか・・・リトルエンディアンstoreをビックエンディアンretreaveで読める? まぁ、検証しようにもビックエンディアンの石がない。まぁ、ネットワークバイトオーダーよりもIntel 8086チップオーダーをデフォルトにしてネットワークバイトオーダーをイリーガルにしてほしい、速度重視の僕が通りますけど、実行効率は大差ありませんよと
必要なのは
の方か
まぁ、こんな事で4時間ぐらいはまってましたという話。
※packの方がsotreよりも高速って記事を読んだのでなんとかpackでと思ったのが過ちの始まりだった。utf8を使う処理はとにかくCライブラリにより近い方を呼ぶのが吉だなぁ・・・全部文字化けではなく一部文字が文字化けってのが一番痛い XML::Simpleも同様で、PurePerlなXML::Simpleは信用できないのでlibXMLかExpat呼んだ方がよさげ・・・
★404 Blog Not Found:perl - 勝手に添削 - Storable
★単純データのシリアライズ速度比較 - Tociyuki::Diary
pack('(N/A*)*',%hash);でhashのシリアライズそのものはできるのだが・・・できるのだが・・・
ファイルに出力したデータのunpackで数%程度の文字化け
binmode,binmode :utf8どちらをつけてもダメ
そりゃぁ、AじゃなくてUだもんなぁ、packの書式とか思う。
でもどちらかというと、packしてバイナリ化したデータの入力でコケている気もする。
というわけで、素直に、
nstore \%hash, $finename;で処理。
%hash= %{ retrieve $finename};
なんというかpureperlでのutf8処理の時もutf8の一部の文字処理が怪しかったけど、おまえもかって感じ
あとnstore とかstoreとか・・・いや、気持ちはわかるけど、ファイルの先頭にネットワークバイトオーダなのか、ホストバイトオーダーなのか書き込んで自動で判別してよとか思う。Intelマシンの方が多い弊社の環境ではリトルエンディアンをデフォルトとして、ビックエンディアンのマシンでオーダを置換してくれた方がありがたいんだが(wって読み込みが常にretreave関数のみでnretreaveが無いって事はやってくれるのか・・・リトルエンディアンstoreをビックエンディアンretreaveで読める? まぁ、検証しようにもビックエンディアンの石がない。まぁ、ネットワークバイトオーダーよりもIntel 8086チップオーダーをデフォルトにしてネットワークバイトオーダーをイリーガルにしてほしい、速度重視の僕が通りますけど、実行効率は大差ありませんよと
必要なのは
use Storable qw(nstore retrieve);
の方か
まぁ、こんな事で4時間ぐらいはまってましたという話。
※packの方がsotreよりも高速って記事を読んだのでなんとかpackでと思ったのが過ちの始まりだった。utf8を使う処理はとにかくCライブラリにより近い方を呼ぶのが吉だなぁ・・・全部文字化けではなく一部文字が文字化けってのが一番痛い XML::Simpleも同様で、PurePerlなXML::Simpleは信用できないのでlibXMLかExpat呼んだ方がよさげ・・・
perl -v
This is perl, v5.8.8 built for i486-linux-gnu-thread-multi
★404 Blog Not Found:perl - 勝手に添削 - Storable
★単純データのシリアライズ速度比較 - Tociyuki::Diary