在 angular2 post 请求中显示 � 而不是 ü
Displaying � instead of ü in angular2 post request
我在 angular2 应用程序的 HTML 页面中显示德语元音变音字符时遇到问题。
我的后端服务在 java 中,它 returns json String.
这是网络选项卡中显示的 post 请求的响应。并且正确显示 ü 字符。
但如果我从下面的代码片段中控制数据,它会在 HTML ui 和控制台中显示 �
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()}
);
}
控制台:
UI:
使用以下解决方案解决了问题。
已添加
headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
在 header 中也更改了服务器端。
正如我提到的,我的服务在 java 中。
已添加
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
我的回复object。
我在 angular2 应用程序的 HTML 页面中显示德语元音变音字符时遇到问题。 我的后端服务在 java 中,它 returns json String.
这是网络选项卡中显示的 post 请求的响应。并且正确显示 ü 字符。
但如果我从下面的代码片段中控制数据,它会在 HTML ui 和控制台中显示 �
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()}
);
}
控制台:
UI:
使用以下解决方案解决了问题。
已添加
headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
在 header 中也更改了服务器端。 正如我提到的,我的服务在 java 中。 已添加
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
我的回复object。