Quote an input string by the quoting rules. If the input string does not require any quoting, the same String reference is returned to the caller. Otherwise a quoted string is returned, including the opening and closing quotation marks at the start and end of the string. If the style does not permit raw Unicode characters then the string will first be encoded in UTF-8, with unprintable sequences possibly escaped by the rules.