Sha256: 6b2bb6be8e38ce9d059cfd22c0b898ef3899d7ae7d0324034249f5a6e941a23b
Contents?: true
Size: 1.16 KB
Versions: 234
Compression:
Stored size: 1.16 KB
Contents
# encoding: utf-8 require "logstash/namespace" require "logstash/util" class LogStash::Util::Charset attr_accessor :logger def initialize(charset) @charset = charset @charset_encoding = Encoding.find(charset) end def convert(data) data.force_encoding(@charset_encoding) # NON UTF-8 charset declared. # Let's convert it (as cleanly as possible) into UTF-8 so we can use it with JSON, etc. return data.encode(Encoding::UTF_8, :invalid => :replace, :undef => :replace) unless @charset_encoding == Encoding::UTF_8 # UTF-8 charset declared. # Some users don't know the charset of their logs or just don't know they # can set the charset setting. unless data.valid_encoding? # A silly hack to help convert some of the unknown bytes to # somewhat-readable escape codes. The [1..-2] is to trim the quotes # ruby puts on the value. return data.inspect[1..-2].tap do |escaped| @logger.warn("Received an event that has a different character encoding than you configured.", :text => escaped, :expected_charset => @charset) end end return data end # def convert end # class LogStash::Util::Charset
Version data entries
234 entries across 225 versions & 17 rubygems