首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过HTTP入站网关将Unicode转义字符串返回到http客户端?

如何通过HTTP入站网关将Unicode转义字符串返回到http客户端?
EN

Stack Overflow用户
提问于 2015-09-14 03:49:22
回答 1查看 78关注 0票数 1

我有一个简单的http-inbound-gateway,它调用服务激活器并将结果返回给HTTP客户机。

service-activator返回一个包含Unicode转义序列的字符串,如下所示:

代码语言:javascript
复制
Fran\u00e7ais

这将被传递到http-inbound-gateway,以作为响应有效载荷返回给客户端。

然而,当我调用入站网关的URL时,似乎正在进行一些转换;转义序列被呈现为浏览器无法呈现的二进制格式:

代码语言:javascript
复制
Fran�ais

我希望转义序列通过入站http网关并返回给浏览器。

我应该怎么做才能达到这个结果呢?

以下是相关的SI配置:

代码语言:javascript
复制
<http:inbound-gateway
    id="inboundGateway"
    request-channel="inboundClientRequestChannel"
    request-payload-type="java.lang.String"
    reply-channel="inboundClientResponseChannel"
    reply-timeout="30000"
    supported-methods="GET"
    message-converters="stringJsonMessageConverter"
    path="/test">

    <http:request-mapping produces="application/json"/>

</http:inbound-gateway>

<int:service-activator
    input-channel="inboundClientRequestChannel"
    output-channel="inboundClientResponseChannel"
    ref="clientRequestHandler"/>

<bean id="stringJsonMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
    <property name="writeAcceptCharset" value="false"/>
    <property name="supportedMediaTypes">
        <list>
            <value>application/json</value>
        </list>
    </property>
</bean>
EN

回答 1

Stack Overflow用户

发布于 2015-09-14 04:14:40

这里的问题是,默认情况下,org.springframework.http.converter.StringHttpMessageConverter的实例stringJsonMessageConverter将字符串转换为ISO-8859-1编码。

请参阅Javadoc here。请注意defaultCharset构造函数参数。

初始化stringJsonMessageConverter以使用UTF-8编码解决了这个问题。

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

https://stackoverflow.com/questions/32553887

复制
相关文章

相似问题

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