タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

dumpとutf8に関するacotieのブックマーク (1)

  • ピヨピヨ ZeroMemory( ) » Blog Archive » Data::DumperでUTF-8フラグつき文字列をエスケープさせないようにするには

    変数の中身を表示してくれるperlのCPANモジュール、Data::Dumperは、UTF8フラグのついているデータがエスケープされて文字化け状態になってしまうため、UTF8で日語を扱う時に困る。でもそもそもUTF8フラグがついていなければエスケープされることもなくて困らないのはなんで?というわけでソースを読むと Data::Dumper::qquote() というメソッドの中で、文字列をエスケープする条件に my $bytes; { use bytes; $bytes = length } s/([^\x00-\x7f])/'\x{'.sprintf("%x",ord($1)).'}'/ge if $bytes > length; というトリッキーなコードが入っていた。UTF-8フラグがついていると、UTF8の文字列が正しく文字として認識されてlengthがバイト数よりも小さくなるので

    acotie
    acotie 2008/10/26
    とても参考になりました。ありがとうございます。
  • 1