BLOGTIMES
2012/03/24

数値文字参照をデコードするワンライナー

  ruby  programming 
このエントリーをはてなブックマークに追加

先日、日本語が数値文字参照になってしまっている UTF-8 に戻す方法がないか尋ねられて、「これくらい気の利いたワンライナーでかけるはず・・・」と言ったものの、具体的なワンライナーが提示できずにちょっと悔しかったので、実際にワンライナーを書いてみました。こんな感じでしょうか。

動作テスト

$ cat test.xml | ruby -pe 'gsub(/&#(?:(\d*?)|(?:[xX]([0-9a-fA-F]{4})));/) { [$1.nil? ? $2.to_i(16) : $1.to_i].pack("U") }' <?xml version="1.0" encoding="ISO-8859-1"?> <root>てすと</root>

テストデータ

test.xml

<?xml version="1.0" encoding="ISO-8859-1"?> <root>&#12390;&#12377;&#12392;</root>

参考


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4850
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン