But I would expect getContentType to return a mime type, not a charset. Ralph
> On Mar 6, 2018, at 9:17 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > >> On Tue, Mar 6, 2018 at 6:01 PM, Remko Popma <remko.po...@gmail.com> wrote: >> >> Sorry, I don’t follow. >> Why not get the appender’s layout and get the charset by calling >> getCharset()? >> > > Right now, I have this ugly non-OO code: > > final Layout<? extends Serializable> layout = > appender.getLayout(); > final Charset charset; > if (layout instanceof StringLayout) { > charset = ((StringLayout) layout).getCharset(); > } else { > charset = > ContentType.parse(layout.getContentType()).getCharset(); > } > > If getContentType() always returned the right thing, I would not need a > conditional. > > Gary > > >> >> >> >>> On Mar 7, 2018, at 7:21, Gary Gregory <garydgreg...@gmail.com> wrote: >>> >>> Here is my current use case: I'd like to be able to query >> getContentType() >>> on an FILE appender (File, RollingFile, RAF, ...) and get the proper >>> charset if the layout for that appender defines it. >>> >>> Gary >>> >>>> On Tue, Mar 6, 2018 at 3:16 PM, Matt Sicker <boa...@gmail.com> wrote: >>>> >>>> Not all MIME types actually use the encoding parameter. For example, >>>> "application/json;charset=UTF-8" is technically an invalid MIME type >> (it's >>>> supposed to be "application/json", and it's assumed to be UTF-8 because >>>> that's the only official charset for JSON). Providing the charset >>>> separately makes semantic sense to me. >>>> >>>>> On 6 March 2018 at 16:04, Gary Gregory <garydgreg...@gmail.com> wrote: >>>>> >>>>> Right. AbstractStringLayout says: >>>>> >>>>> @Override >>>>> public Charset getCharset() { >>>>> return charset; >>>>> } >>>>> >>>>> /** >>>>> * @return The default content type for Strings. >>>>> */ >>>>> @Override >>>>> public String getContentType() { >>>>> return "text/plain"; >>>>> } >>>>> >>>>> Gary >>>>> >>>>> >>>>> >>>>> On Tue, Mar 6, 2018 at 2:52 PM, Remko Popma <remko.po...@gmail.com> >>>> wrote: >>>>> >>>>>> (Away from pc) by “use”, do you mean that the string returned by >>>>>> getContentType() doesn’t include a charset? >>>>>> >>>>>> From memory, I remember the only place this method is used is in the >>>>>> HtmlAppender. Are there other places? >>>>>> >>>>>> (Shameless plug) Every java main() method deserves >> http://picocli.info >>>>>> >>>>>>> On Mar 7, 2018, at 1:37, Gary Gregory <garydgreg...@gmail.com> >>>> wrote: >>>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> It looks >>>>>>> like org.apache.logging.log4j.core.layout.AbstractStringLayout. >>>>>> getContentType() >>>>>>> does NOT use its charset. >>>>>>> >>>>>>> Can anyone foresee a problem with fixing this? >>>>>>> >>>>>>> Gary >>>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>>> >>