Web services Restful服务2x字符集ISO-8859-9不工作

Web services Restful服务2x字符集ISO-8859-9不工作,web-services,rest,tomcat7,jersey-2.0,turkish,Web Services,Rest,Tomcat7,Jersey 2.0,Turkish,我正在尝试使用jersey 2.13API+Tomcat7创建一个restful Web服务。我的目标是显示我的计算机上的目录和文件作为响应 除了土耳其语编码外,一切正常。我的HTML响应包括土耳其字符。我做了一切(在注释中添加了;charset=ISO-8859-9,在charset中添加了meta元素,在响应头中添加了charset,在响应头中添加了语言等等),但我的页面仍然充满了未知字符,而不是土耳其语字符 我无法发布显示问题的图像,因为我的代表性较低:S 这里是来自我的服务器响应的链接

我正在尝试使用jersey 2.13API+Tomcat7创建一个restful Web服务。我的目标是显示我的计算机上的目录和文件作为响应

除了土耳其语编码外,一切正常。我的HTML响应包括土耳其字符。我做了一切(在注释中添加了;charset=ISO-8859-9,在charset中添加了meta元素,在响应头中添加了charset,在响应头中添加了语言等等),但我的页面仍然充满了未知字符,而不是土耳其语字符

我无法发布显示问题的图像,因为我的代表性较低:S 这里是来自我的服务器响应的链接

<a href="http://localhost:8080/TezWebServer/rest/servis/klasor?ad=C://**Görüntü Ä°ÅLEME GENEL">KLASOR:Görüntü Ä°ÅLEME GENEL**</a>

这个应该是

<a href="http://localhost:8080/TezWebServer/rest/servis/klasor?ad=C://**GÖRÜNTÜ İŞLEME GENEL">KLASOR:GÖRÜNTÜ İŞLEME GENEL</a>

同样的代码在使用jersey 1x时正常工作,我认为这是一个bug:S

@GET
@Path("klasor")
@Produces(MediaType.TEXT_HTML+";charset=ISO-8859-9")
public Response dosyalariGosterHTML(@QueryParam("ad") String klasorAdi){
    if(klasorAdi==null||klasorAdi.equals("")){
        klasorAdi = "C:/";
    }

    StringBuffer sb = new StringBuffer();
    sb.append("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html><head><meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-9'/>
<META HTTP-EQUIV='Content-language' CONTENT='tr'><title>Tez İD</title></head><body>");

        try{
            klasorAdi = text_convert_ters(klasorAdi);

            File folder = new File(klasorAdi);
            File[] listOfFiles = folder.listFiles();

            for (int i = 0; i < listOfFiles.length; i++) {
                if (listOfFiles[i].isFile()) {
                    sb.append("<a href='http://localhost:8080/TezWebServer/rest/servis/dosya?adres="+klasorAdi+"/"+ listOfFiles[i].getName()+"'>DOSYA:"+listOfFiles[i].getName()+"</a><br/>");


                } else if (listOfFiles[i].isDirectory()) {
                    sb.append("<a href='http://localhost:8080/TezWebServer/rest/servis/klasor?ad="+klasorAdi+"/"+ listOfFiles[i].getName()+"'>KLASOR:"+listOfFiles[i].getName()+"</a><br/>");
                }
            }
            sb.append("</body></html>");
    }catch(Exception e){
        e.printStackTrace();
        sb.append("Hata:Belirtilen Yol Geçersiz</body></html>");
    }
    return Response.ok(sb.toString()).language(Locale.getDefault()).header("charset", "ISO-8859-9").build();
}



public String text_convert_ters(String eskiStr)
    {
        String yeniStr = "";
        for(int index = 0; index < eskiStr.length(); index++)
        {
            char tmpStr = eskiStr.charAt(index);
            if(tmpStr == '\360') tmpStr='ğ';
            else if(tmpStr == '\320') tmpStr='Ğ';
            else if(tmpStr == '\375') tmpStr='ı';
            else if(tmpStr == '\335') tmpStr='İ';
            else if(tmpStr == '\366') tmpStr='ö';
            else if(tmpStr == '\326') tmpStr='Ö';
            else if(tmpStr == '\374') tmpStr='ü';
            else if(tmpStr == '\334') tmpStr='Ü';
            else if(tmpStr == '\376') tmpStr='ş';
            else if(tmpStr == '\336') tmpStr='Ş';
            else if(tmpStr == '\347') tmpStr='ç';
            else if(tmpStr == '\307') tmpStr='Ç';
            yeniStr = yeniStr + tmpStr;
        }

        return yeniStr;
    }



 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>TezWebServer</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
        <welcome-file>/axis2-web/index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>benim.tez.projem.rs.servis</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
    <servlet>
        <display-name>Apache-Axis Servlet</display-name>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
</web-app>
@GET
@路径(“klasor”)
@产生(MediaType.TEXT_HTML+“charset=ISO-8859-9”)
公共响应dosylarigosterhtml(@QueryParam(“ad”)字符串klasorAdi){
如果(klasorAdi==null | | klasorAdi.equals(“”){
klasorAdi=“C:/”;
}
StringBuffer sb=新的StringBuffer();
某人附加(”
特兹İD);
试一试{
klasorAdi=文本转换(klasorAdi);
文件夹=新文件(klasorAdi);
File[]listOfFiles=folder.listFiles();
for(int i=0;i”);
}else if(listOfFiles[i].isDirectory()){
sb.追加(“
”); } } 某人加上(“”); }捕获(例外e){ e、 printStackTrace(); sb.追加(“哈塔:贝里蒂伦·约尔·热尔西兹”); } 返回Response.ok(sb.toString()).language(Locale.getDefault()).header(“charset”,“ISO-8859-9”).build(); } 公共字符串文本转换(字符串eskiStr) { 字符串Yenister=“”; 对于(int index=0;index
这应该可以。尝试创建单元测试来重现问题。我已经为你们准备好了单元测试:嗨,你们已经解决了这个问题了吗?泽西岛JIRA(见)有一个问题,请回答好吗?谢谢