def initialize(output_encoding, internal_encoding=HTree::Encoder.internal_charset)
@buf = ''
@internal_encoding = internal_encoding
@output_encoding = output_encoding
if defined? Encoding::Converter
if @internal_encoding == output_encoding
@ic = DummyEncodingConverter.new(@internal_encoding)
else
@ic = Encoding::Converter.new(@internal_encoding, output_encoding)
end
else
@ic = Iconv.new(output_encoding, @internal_encoding)
end
@charpat = FirstCharPattern[internal_encoding]
@subcharset_list = SubCharset[output_encoding] || []
@subcharset_ic = {}
@subcharset_list.each {|subcharset|
if defined? Encoding::Converter
if @internal_encoding == subcharset
@subcharset_ic[subcharset] = DummyEncodingConverter.new(@internal_encoding)
else
@subcharset_ic[subcharset] = Encoding::Converter.new(@internal_encoding, subcharset)
end
else
@subcharset_ic[subcharset] = Iconv.new(subcharset, @internal_encoding)
end
}
@html_output = false
end