有一个有趣的问题。。我们的防火墙后面有一个wordpress XML/RSS服务,该服务本地化到多个国家,可以与中文、俄文等完美结合。
为了公开这个服务,我们创建了一个简单的JSP服务,由于某些原因,它不会呈现外来字符。
任何想法都将不胜感激。
<%@ page language="java" contentType="application/xml; charset=utf-8" pageEncoding="utf-8"%>
<%@ page session="false"%>
<%@ page import='java.io.BufferedReader' %>
<%@ page import='java.io.InputStreamReader' %>
<%@ page import='java.io.IOException' %>
<%@ page import='java.io.PrintWriter' %>
<%@ page import='java.net.URL' %>
<%@ page import='java.net.URLConnection' %>
<%
//final String URL_BASE = "http://localhost:8080/index.php/";
final String URL_BASE = "http://INTERNALSERVERIP:8888/index.php/";
final String NL = System.getProperty("line.separator");
BufferedReader br = null;
try
{
String feedName = request.getParameter("name");
// if no feed was specified
if (feedName == null || feedName.trim().length() == 0)
{
feedName = "feed1";
}
// set the URL based off the feed name
String urlStr = URL_BASE + feedName.trim().toLowerCase();
System.out.println("urlStr: " + urlStr);
URL url = new URL(urlStr);
URLConnection urlCon = url.openConnection();
br = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));
String resLine = null;
while ((resLine = br.readLine()) != null)
{
resLine= new String(resLine.getBytes("ISO8859_1"), "UTF8");
out.println(resLine);
}
}
catch (Throwable t)
{
t.printStackTrace(new PrintWriter(out));
}
finally
{
if (br != null)
{
try
{
br.close();
}
catch (IOException ioe)
{}
}
}
%>
按照Jasper de Vries的建议,使用UTF8字符集创建InputStreamReader(如下所示)。
br = new BufferedReader(new InputStreamReader(urlCon.getInputStream(), "UTF8"));
然后,您不需要在循环中转换字符串的字符集,因此可以删除/注释它。下面是jsp的修改版本。
<%@ page language="java" contentType="application/xml; charset=utf-8" pageEncoding="utf-8"%>
<%@ page session="false"%>
<%@ page import='java.io.BufferedReader' %>
<%@ page import='java.io.InputStreamReader' %>
<%@ page import='java.io.IOException' %>
<%@ page import='java.io.PrintWriter' %>
<%@ page import='java.net.URL' %>
<%@ page import='java.net.URLConnection' %>
<%
//final String URL_BASE = "http://localhost:8080/index.php/";
final String URL_BASE = "http://INTERNALSERVERIP:8888/index.php/";
final String NL = System.getProperty("line.separator");
BufferedReader br = null;
try
{
String feedName = request.getParameter("name");
// if no feed was specified
if (feedName == null || feedName.trim().length() == 0)
{
feedName = "feed1";
}
// set the URL based off the feed name
String urlStr = URL_BASE + feedName.trim().toLowerCase();
System.out.println("urlStr: " + urlStr);
URL url = new URL(urlStr);
URLConnection urlCon = url.openConnection();
br = new BufferedReader(new InputStreamReader(urlCon.getInputStream(), "UTF8"));
String resLine = null;
while ((resLine = br.readLine()) != null)
{
// resLine= new String(resLine.getBytes("ISO8859_1"), "UTF8");
out.println(resLine);
}
}
catch (Throwable t)
{
t.printStackTrace(new PrintWriter(out));
}
finally
{
if (br != null)
{
try
{
br.close();
}
catch (IOException ioe)
{}
}
}
%>
希望有帮助。:)
编写了以下两个函数,用于存储和检索任何Python(内置或用户定义)对象,并结合使用json和jsonickle(在2.7中) 我还没有用用户定义的对象测试过这两个函数,但是当我试图保存()一个内置的字符串字典时,(即。{'Adam': 'Age 19 ',' Bill ',' Age 32'}),并且我检索相同的文件,我得到相同的unicode字典,{u'Adam': u'Age 19 ',u'
我需要根据以下场景格式化restful服务的输出(xml) 我有一个键值对如下的类。 假设我有这样的列表,由rest服务返回: 我想生成如下输出 但目前它提供了以下输出 有人能告诉我如何做到这一点吗?
到处玩弄Spring Boot,我无法显示jsp页面。有daos等工作,所以没有probs那里,但我不能为我的生活使它显示一个简单的jsp页面(没有数据传入,只是一个简单的页面) 我尝试在/resources/meta-inf/resources/WEB-INF/jsp和/webapp/WEB-INF/view中添加JSP 误差
Response响应对象主要将JSP容器处理后的结果传回到客户端。可以通过response变量设置HTTP的状态和向客户端发送数据,如Cookie、HTTP文件头信息等。 一个典型的响应看起来就像下面这样: HTTP/1.1 200 OK Content-Type: text/html Header2: ... ... HeaderN: ... (空行) <!doctype ...> <ht
问题:基于PersonDto中存在的规则值,我正在应用这些规则。在Rule1类中,我有一个修改id字段的逻辑。我正在设置新的id,我得到作为参数。 最后,我将结果存储到ArrayList中。 但是在ArrayList中,所有PersonDto的值都是我在应用规则时传递的最后一个id值。 例如: 正如您在上面的代码片段中所看到的,有两个ID10001和10002,但是当存储并打印结果时,所有元素中的
请查看Servlet类中的注释。如果将更改为,则无法访问应用程序。 为什么会出现这个问题?