mirror of
https://github.com/jetty/jetty.project.git
synced 2025-03-01 03:19:13 +00:00
The default iso-8859-1 encoding should be set in the Content-Type.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
This commit is contained in:
parent
f5fab09498
commit
908acd5904
@ -777,6 +777,19 @@ public class Response implements HttpServletResponse
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getCharacterEncoding()
|
public String getCharacterEncoding()
|
||||||
|
{
|
||||||
|
return getCharacterEncoding(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Private utility method to get the character encoding.
|
||||||
|
* A standard call to {@link #getCharacterEncoding()} should not change the Content-Type header.
|
||||||
|
* But when {@link #getWriter()} is called we must decide what Content Type to use, so this will allow an inferred
|
||||||
|
* charset to be set in in the Content-Type.
|
||||||
|
* @param setContentType set the Content-Type header if this is set to true, otherwise just calculate what it should be.
|
||||||
|
* @return the character encoding for this response.
|
||||||
|
*/
|
||||||
|
private String getCharacterEncoding(boolean setContentType)
|
||||||
{
|
{
|
||||||
// First try explicit char encoding.
|
// First try explicit char encoding.
|
||||||
if (_characterEncoding != null)
|
if (_characterEncoding != null)
|
||||||
@ -784,11 +797,11 @@ public class Response implements HttpServletResponse
|
|||||||
|
|
||||||
String encoding;
|
String encoding;
|
||||||
|
|
||||||
// Try charset from mime type.
|
// Try charset from mime type. TODO: should this be added to Content-Type header?
|
||||||
if (_mimeType != null && _mimeType.isCharsetAssumed())
|
if (_mimeType != null && _mimeType.isCharsetAssumed())
|
||||||
return _mimeType.getCharsetString();
|
return _mimeType.getCharsetString();
|
||||||
|
|
||||||
// Try charset assumed from content type.
|
// Try charset assumed from content type (assumed charsets are not added to content type header).
|
||||||
encoding = MimeTypes.getCharsetAssumedFromContentType(_contentType);
|
encoding = MimeTypes.getCharsetAssumedFromContentType(_contentType);
|
||||||
if (encoding != null)
|
if (encoding != null)
|
||||||
return encoding;
|
return encoding;
|
||||||
@ -797,11 +810,12 @@ public class Response implements HttpServletResponse
|
|||||||
encoding = MimeTypes.getCharsetInferredFromContentType(_contentType);
|
encoding = MimeTypes.getCharsetInferredFromContentType(_contentType);
|
||||||
if (encoding != null)
|
if (encoding != null)
|
||||||
{
|
{
|
||||||
|
if (setContentType)
|
||||||
setCharacterEncoding(encoding, EncodingFrom.INFERRED);
|
setCharacterEncoding(encoding, EncodingFrom.INFERRED);
|
||||||
return encoding;
|
return encoding;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try any default char encoding for the context.
|
// Try any default char encoding for the context. TODO: should this be added to Content-Type header?
|
||||||
Context context = _channel.getRequest().getContext();
|
Context context = _channel.getRequest().getContext();
|
||||||
if (context != null)
|
if (context != null)
|
||||||
{
|
{
|
||||||
@ -811,7 +825,10 @@ public class Response implements HttpServletResponse
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Fallback to last resort iso-8859-1.
|
// Fallback to last resort iso-8859-1.
|
||||||
return StringUtil.__ISO_8859_1;
|
encoding = StringUtil.__ISO_8859_1;
|
||||||
|
if (setContentType)
|
||||||
|
setCharacterEncoding(encoding, EncodingFrom.INFERRED);
|
||||||
|
return encoding;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -852,7 +869,7 @@ public class Response implements HttpServletResponse
|
|||||||
|
|
||||||
if (_outputType == OutputType.NONE)
|
if (_outputType == OutputType.NONE)
|
||||||
{
|
{
|
||||||
String encoding = getCharacterEncoding();
|
String encoding = getCharacterEncoding(true);
|
||||||
Locale locale = getLocale();
|
Locale locale = getLocale();
|
||||||
if (_writer != null && _writer.isFor(locale, encoding))
|
if (_writer != null && _writer.isFor(locale, encoding))
|
||||||
_writer.reopen();
|
_writer.reopen();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user