@Override
  public void initialize(Configuration configuration, Properties tableProperties, Properties partitionProperties)
      throws SerDeException {
    super.initialize(configuration, tableProperties, partitionProperties);
    charset = Charset.forName(properties.getProperty(serdeConstants.SERIALIZATION_ENCODING, "UTF-8"));
    if (this.charset.equals(Charsets.ISO_8859_1) || this.charset.equals(Charsets.US_ASCII)) {
      log.warn("{} The data may not be properly converted to target charset {}", getClass().getName(), charset);
    }
  }
AbstractEncodingAwareSerDe aware the encoding from table properties,
transform data from specified charset to UTF-8 during serialize, and
transform data from UTF-8 to specified charset during deserialize.
serde/src/java/org/apache/hadoop/hive/serde2/AbstractEncodingAwareSerDe.java