如何在对UTF-8的回复中设置默认字符编码?
我已经试过了
System.setProperty("file.encoding", "UTF-8");
还有这个
System.setProperty("org.eclipse.jetty.util.UrlEncoding.charset", "utf-8");
都不起作用-响应仍与标头一起发送
Content-Type: text/html; charset=ISO-8859-1
我想对所有text / html响应都执行此操作,理想情况下是使用代码而不是XML。我正在使用Jetty 9。
Jetty文档声称它默认情况下使用UTF-8,但这似乎是一个谎言。如果执行normal
response.getWrite().println("Hello")
,则内容编码如下确定。
org/eclipse/jetty/http/encoding.properties
: // MimeTypes.java:155
ResourceBundle encoding = ResourceBundle.getBundle("org/eclipse/jetty/http/encoding");
Enumeration<String> i = encoding.getKeys();
while(i.hasMoreElements())
{
String type = i.nextElement();
__encodings.put(type,encoding.getString(type));
}
默认文件是:
text/html = ISO-8859-1
text/plain = ISO-8859-1
text/xml = UTF-8
text/json = UTF-8
Response.getWriter()
尝试使用该地图,但默认为ISO-8859-1
@Override
public PrintWriter getWriter() throws IOException
{
if (_outputType == OutputType.STREAM)
throw new IllegalStateException(“STREAM”);
if (_outputType == OutputType.NONE)
{
/* get encoding from Content-Type header */
String encoding = _characterEncoding;
if (encoding == null)
{
encoding = MimeTypes.inferCharsetFromContentType(_contentType);
if (encoding == null)
encoding = StringUtil.__ISO_8859_1;
setCharacterEncoding(encoding);
}
因此,您可以看到text/html
它并非默认为UTF-8。我认为没有办法从代码中更改默认值。最好的办法是将encoding.properties
文件更改为此:
text/html = UTF-8
text/plain = UTF-8
text/xml = UTF-8
text/json = UTF-8
但是即使这样,即使找到的编码也不存在,它也会默认为ISO-8859-1。
我想在Camel环境中使用Jetty组件。这是我的spring配置的摘录。xml: 下面是用于返回字符串的代码: 本地地址有效(http://127.0.0.1/enc)但是浏览器没有正确显示字符串(显示为“abcÃö¼ÃŸ”–äääääŒääää‰)。我假设问题是一些编码。如何设置像“utf-8”这样的编码? 我在这里找不到任何提示(http://camel.apache.org/jetty.
我收到一个标题为: 内容-长度:18588 content-type:application/json;charset=utf-8 日期:2015年12月2日星期三12:58:51 GMT 服务器:apache-coyote/1.1 在将“application/json”编码字符串发送到视图之前,是否有可能将其更改为“text/plain;charset=iso-8859-1”编码?我正在使用s
我面临的一个场景是,字符“ᦙ”偶尔会从我的okhttp请求中返回,这个字符会导致一些下游问题。因此,我添加了代码来删除这个字符,如果它存在,我想添加一个测试用例,以确保这一工作正常。问题是wiremock似乎不喜欢这个特殊的角色。 通常我会这样从响应中提取数据: 通常这适用于我所有的请求。但是,当我设置wiremck以返回带有特殊字符的响应时(即使是单个响应,我想用许多不同的字段进行测试),字符串
So do not worry about tomorrow, for tomorrow will bring worries of its own. Today's trouble is enough for today. (MATTHEW 6:34) 字符编码 其实,标题前面应该加两个字——“坑爹”。 在实践中,字符编码的确是一个“坑”。因为这个世界上,不都是英文。如果都是英文,就没有这个问题
我使用IBM worklight开发一个混合应用程序。在本地开发环境中,一切都很好。 还是用ISO-8859-1字符集获取数据,用UTF-8将数据插入数据库?
问题内容: 有没有一种方法不显示http响应的头文件。 例如 : 显示字段 服务器 时,它可能是一个不好的实践。我以为tomcat 有一种 生产模式 ,可以隐藏一些标题字段。 谢谢。 问题答案: 在server.xml文件中,添加到连接器以更改标头名称。我相信只是会删除标题或发送空白,但我并不乐观。 因此,您的连接器将如下所示: 请注意,在开发机器上进行更改时遇到问题。我认为这是Netbeans寻