private static void configureDeserializationSchema(
            ReadableConfig formatOptions, CsvRowDataDeserializationSchema.Builder schemaBuilder) {
        schemaBuilder.setCharset(formatOptions.getOptional(CHARSET).orElse(CHARSET.defaultValue()));

        formatOptions
                .getOptional(FIELD_DELIMITER)
                .map(delimiter -> StringEscapeUtils.unescapeJava(delimiter).charAt(0))
                .ifPresent(schemaBuilder::setFieldDelimiter);

        formatOptions
                .getOptional(QUOTE_CHARACTER)
                .map(quote -> quote.charAt(0))
                .ifPresent(schemaBuilder::setQuoteCharacter);

        formatOptions
                .getOptional(ESCAPE_CHARACTER)
                .map(escape -> escape.charAt(0))
                .ifPresent(schemaBuilder::setEscapeCharacter);

        formatOptions
                .getOptional(NULL_LITERAL)
                .ifPresent(schemaBuilder::setNullLiteral);

        formatOptions
                .getOptional(IGNORE_ERRORS)
                .ifPresent(schemaBuilder::setIgnoreErrors);
    }
Validates the option {@code option} value must be a Character.

@param tableOptions the table options
@param option       the config option
@param unescape     whether to unescape the option value
inlong-sort/sort-formats/format-rowdata/format-rowdata-csv/src/main/java/org/apache/inlong/sort/formats/csv/CsvFormatFactory.java