# File lib/puppet/util/puppetdb/char_encoding.rb, line 182 def self.is_valid_multibyte_suffix(byte, additional_bytes) # This is heinous, but the UTF-8 spec says that codepoints greater than # 0x10FFFF are illegal. The first character that is over that limit is # 0xF490bfbf, so if the first byte is F4 then we have to check for # that condition. if byte == 0xF4 val = additional_bytes.inject(0) { |result, b | (result << 8) + b} if val >= 0x90bfbf return false end end additional_bytes.all? { |b| ((b & 0xC0) == 0x80) } end