Home > 2016-09-25 (日) > bsfilterの「invalid byte sequence in EUC-JP」を回避する

bsfilterの「invalid byte sequence in EUC-JP」を回避する

  • 2016-09-25 (日) 12:44
  • PC
Pocket

bsfilterでメールを処理していると、以下のようなエラーが出るときがあります。

/path/bsfilter:1371:in `gsub': invalid byte sequence in EUC-JP (ArgumentError)
	from /path/bsfilter:1371:in `decode_character_reference'
	from /path/bsfilter:1590:in `tokenize_body'
	from /path/bsfilter:1303:in `tokenize_buf'
	from /path/bsfilter:2799:in `block (2 levels) in do_imap'
	from /path/bsfilter:2796:in `each'
	from /path/bsfilter:2796:in `block in do_imap'
	from /path/bsfilter:2794:in `each'
	from /path/bsfilter:2794:in `do_imap'
	from /path/bsfilter:3442:in `run'
	from /path/bsfilter:3494:in `<main>'

これを回避するには、Ruby2.1.0以降では、decode_character_refrence()関数の冒頭を以下のようにします。

  def decode_character_reference(str, lang)
    if (@options["utf-8"])
      newstr2 = str.scrub('?') # この行を追加。下の行のstrをnewstr2に変更
      newstr = newstr2.gsub(/\&\#(\d{1,5}|x[\da-f]{1,4});/i) do
Pocket

Comments:0

簡単コメント for mixi ユーザー
Comment Form
Remember personal info

Comments links could be nofollow free.

Trackbacks:0

Trackback URL for this entry
http://toga.vegalta.org/wordpress/2016/09/25/846/trackback
Listed below are links to weblogs that reference
bsfilterの「invalid byte sequence in EUC-JP」を回避する from Cheerfull days

Home > PC > bsfilterの「invalid byte sequence in EUC-JP」を回避する

Search
Feeds
Meta

Return to page top