iconvでのError: EILSEQ, Illegal character sequenceの回避方法

node.jsでメール送信する際の、エンコーディングにiconvを使用したのだけど、
変換対象文字列にISO-2022-JPに存在しない文字(①とかⅤとか)が存在する場合、

Error: EILSEQ, Illegal character sequence



というエラーが出ていた。


try {
var Iconv = require('iconv').Iconv;
// UTF-8からISO-2022-JPへ変換
var iconv = new Iconv('UTF-8', 'ISO-2022-JP');
return iconv.convert(str).toString();
} catch (e) {
console.log(str);
console.log(e);
throw e;
}

var iconv = new Iconv('UTF-8', 'ISO-2022-JP');



ここの指定が悪いみたいで、

//IGNORE(無視する)


が必要。そのままの意味で、存在しない文字が来ても知らんふりするよってことで、
エラーをはかなくなる。

更にもう一つ、便利なオプション


//TRANSLIT(変換する?)
なんとなく英文を読んだら、「なかったらなんとなく見た目似たやつに変えとくよ~♪」
みたいな感じだった。
因みに、①→(1)、Ⅴ→Vに変えてくれてた。
なんとなく見た目似てるねw

なので、



var iconv = new Iconv('UTF-8', 'ISO-2022-JP//TRANSLIT//IGNORE');

で解決。