在angular2 post请求中显示 而不是ü

时间:2017-05-04 10:01:21

标签: web-services angular utf-8 angular2-services

我在angular2应用程序的HTML页面中显示德语变音字符时遇到问题。 我的后端服务在java中,它返回json String。

这是发布请求的响应,显示在网络选项卡中。并且它正确显示ü字符。

enter image description here

但如果我从下面的代码段控制数据,它会在HTML ui和console中显示。。

    getStackById(project: string, stackId: string, ibsessionid: string) {
    var headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded');
    return this.http.post('http://' + this.ip + ':' + this.port + '/IBPublicationBuilder/MiddlewareServlet', 'project=' + project + '&stackid=' + stackId + '&ibsessionid=' + ibsessionid + '&method=getStackById', {
      withCredentials: true, headers: headers
    }).map(
      (res: Response) => {
         console.log(res);
        return res.json()}
      );
  }

控制台:enter image description here

UI: enter image description here

1 个答案:

答案 0 :(得分:0)

通过以下解决方案解决了这个问题。

已添加

headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');

在标题中也改变了服务器端。 正如我所提到的,我的服务是在java中。 添加了

response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");

到我的回复对象。