首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML实体显示为?只有通过码头才能送达

HTML实体显示为?只有通过码头才能送达
EN

Stack Overflow用户
提问于 2014-03-31 02:22:00
回答 1查看 223关注 0票数 1

我的HTML实体(如©mdash; )在页面上呈现时和在查看基础源时都会显示为?,但只有通过生产Jetty服务器(在webapps目录中)才能显示。

当通过本地Nginx从静态文件中获得服务时,HTML实体看起来很好。当使用嵌入式Jetty进行基座应用程序的开发运行时,它们看起来也不错。以下是HTML头:

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta content="IE=edge" http-equiv="X-UA-Compatible" />
  <meta content="width=device-width, initial-scale=1.0" name="viewport" />
  <meta content="Web Site Description" name="description" />
  <meta content="The Author" name="author" />
  <link href="/images/favicon-128x128.png" type="image/png" rel="shortcut icon" />
  <title>A Really Great Title</title>
  <link rel="stylesheet" href="/css/bootstrap.css" />
  <link rel="stylesheet" href="/css/shared.css" />
  <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js">
    </script>
    <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
    </script>
  <![endif]-->
</head>

我该怎么解决这个问题?可能出什么问题了?或者,如果失败,我如何调试?

一些想法:

首先,我在生产中使用Jetty9.1.X。我的开发服务器使用(来自lein deps :tree):

代码语言:javascript
运行
复制
[io.pedestal/pedestal.jetty "0.2.2"]
   [javax.servlet/javax.servlet-api "3.0.1"]
   [org.eclipse.jetty/jetty-server "8.1.9.v20130131"]
     [org.eclipse.jetty.orbit/javax.servlet "3.0.0.v201112011016"]
     [org.eclipse.jetty/jetty-continuation "8.1.9.v20130131"]
     [org.eclipse.jetty/jetty-http "8.1.9.v20130131"]
       [org.eclipse.jetty/jetty-io "8.1.9.v20130131"]
         [org.eclipse.jetty/jetty-util "8.1.9.v20130131"]
   [org.eclipse.jetty/jetty-servlet "8.1.9.v20130131"]
     [org.eclipse.jetty/jetty-security "8.1.9.v20130131"]

是否有Jetty 9的生产设置,我应该检查一遍?

其次,我使用的是恩利。它依赖于以下依赖项(来自lein deps :tree):

代码语言:javascript
运行
复制
[enlive "1.1.5"]
   [org.ccil.cowan.tagsoup/tagsoup "1.2.1"]
   [org.jsoup/jsoup "1.7.2"]

我想知道TagSoup在生产和开发中的表现是否有所不同。

更新

以下是响应头:

代码语言:javascript
运行
复制
HTTP/1.1 200 OK
Set-Cookie: ring-session=eyTI ... <SNIP> ... s%3D;Path=/
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Server: Jetty(9.1.3.v20140225)

text/html;charset=UTF-8似乎排除了Jetty是问题所在。我认为TagSoup有可能(甚至可能)不像我所期望的那样行事。

我目前正在阅读Enlive邮件列表上的这个帖子:作为问号的mark输出

更新:我的Clojure模板(我正在使用Enlive,但我刚刚切换到雷射 --但两者在这方面的行为是一样的)将HTML转换为雷射。问题似乎是我的安装Jetty 9没有配置(或者我没有给它需要的)来处理Unicode字符。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-31 18:48:21

在启动Jetty时指定UTF-8编码解决了问题。

代码语言:javascript
运行
复制
java -Dfile.encoding=UTF-8 -jar start.jar

此外,这里是我使用的厨师食谱,以防它帮助您:https://github.com/bluemont/chef-jetty

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22752678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档