Решил вопрос через глубокий анус, как у меня к сожалению часто бывает.
Т.к. у меня упорно не получалось пользоваться :invalid=>:replace, :undef=>:replace (менялись все символы не попадающие в ascii) пришлось сделать это самому. Я пробежался по каждому символу строки, и отсек невалидные символы.
source.each_char do |char|
enc_char = char.force_encoding('utf-8')
if enc_char.valid_encoding?
content << enc_char
else
log.debug(char)
end
end
Если у когото есть более изящное решение, буду признателен если поделитесь.