エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Data::DumperでUTF-8フラグつき文字列をエスケープさせないようにするには
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Data::DumperでUTF-8フラグつき文字列をエスケープさせないようにするには
変数の中身を表示してくれるperlのCPANモジュール、Data::Dumperは、UTF8フラグのついているデータがエ... 変数の中身を表示してくれる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がバイト数よりも小さくなるので