On Tue, Mar 6, 2018 at 11:01 PM, Apache <ralph.go...@dslextreme.com> wrote:

> But I would expect getContentType to return a mime type, not a charset.
>

A content type can contain a charset parameter, for example:

Content-type: text/plain; charset=us-ascii

See https://www.w3.org/Protocols/rfc1341/4_Content-Type.html

Gary


> 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>
> >>>>
> >>
>
>
>

Reply via email to