タグ

ブックマーク / www.drk7.jp (4)

  • 文字コード変換ミスによる文字化けパターンと想定される原因 - drk7jp

    とあるシステムでデータベースから引いてきたデータの表示が文字化けするという不具合がありました。 データベース内のデータとしては文字化けしていない状態で格納されていることはわかっていたので、どこかしらの文字変換で化けていることはわかっています。まずはどの誤変換により文字化けするのか原因切り分けのために、decode/encode の組み合わせによる文字化けパターン一覧を作りました。おかげさまでどのパターンに類するものか判別することができ、無事に改修することができました。 その話はまた別にするとして、今も昔も変わらず文字化けに悩む人は意外と多いと思います。誤変換結果一覧は原因解析の参考になると思い、記事としてまとめることにしました。 文字コード変換ミスによる文字化けパターンを可視化するプログラムと一覧表 まずは誤変換を生成する perl スクリプトです。プログラムはとっても簡単で、「文字化けで

    advblog
    advblog 2013/04/09
  • 【続】やはり Perl はメモリ喰いな言語。データ型の内部構造

    以前、「やはり Perl はメモリ喰いな言語。データ型の内部構造」という記事を書いたことがあるのですが、自分で書いておきながらしばらく立つと完全忘却してました。時代は変わって、今仕事で運用しているサーバは、64bit 版のOSです。 最近になって、DB のテーブルのデータを加工・集計しながら CSV にダンプするってプログラムが、データ数が非常に多いときに、1.5 GByte ほどメモリをいつぶしているってことに気がつきました。理由は至って簡単なのですが、結構ハマリどころなので備忘録として記事にしておくことにしました。 みなさん、仕事とかでは特にそうだと思うのですが、DBI の処理って何らかのラッパーを書いて使っていると思います。僕は適当に書くとよくやってしまいがちなのですが、イメージ的には、こんな処理の流れのコードを書いていました。 (・・・えっ?そんなへぼコード書いてない??・・・す

    advblog
    advblog 2012/12/05
  • やはり Perl はメモリ喰いな言語。データ型の内部構造

    use Devel::Size::Report qw/report_size/; # 1bit, 1byte, 2byte, 3byte, 4byte(=32bit), 5byte my $b = [ 0, 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF, 0xFFFFFFFFFF ]; print report_size($b, { indent => " " }); # null, length=1, 2, 3, 4, 5 my $c = [ '', '1', '10', '100', '1000', '10000' ]; print report_size($c, { indent => " " }); Size report v0.10 for 'ARRAY(0x8c8bc28)': Array ref 192 bytes (overhead: 92 byte

    advblog
    advblog 2012/12/05
  • メール送信者認証技術 SPF/Sender ID についてお勉強

    お勉強の背景に関しては 「迷惑メール対策 OP25B(Outbound Port25 Blocking)についてお勉強」 に書いたとおりですが、迷惑メール対策としての SPF/Sender ID についてもいろいろ勉強したのでそのまとめです。(DomainKeys については思いのほかエントリが長くなったのでまた別の機会で・・・)まずは参考になったサイトの紹介から。 Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1 Sender ID: Authenticating E-Mail DNS関連技術の最新動向 - SPF/DomainKeysとは Sendmail 社 - 送信者認証技術の導入におけるレコメンデーション メール送信者認証の仕組みを探る(2/2):スペシャル - ZD

    advblog
    advblog 2008/03/10
  • 1