我有一个像这样的Java RESTlet v2.1.2方法:
@Post("json")
public Representation doPost(Representation entity) throws UnsupportedEncodingException {
Request request = getRequest();
String entityAsText = request.getEntityAsText();
logger.info("entityAsText = " + entityAsText + " Üüÿê");
在Cygwin控制台中打印:
2015-04-19 22:07:27 INFO BaseResource:46 - entityAsText = {
"Id":"xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx",
"Field1":"John?????????",
"Field2":"Johnson??????????"
} ▄³ Û
正如您所见,Üüÿê打印为▄³Û。角色Üüÿê也在SOAP UI的POST主体中。但它们被打印成???。我有一个实现,它不使用RESTlet,这是有效的。因此SOAP UI中的设置不是问题。 (POST正文在Application / JSON顺便说一句。)
如何从POST主体中提取unicodecharsÜüÿê而不将它们作为??? ?
答案 0 :(得分:0)
我做了一个测试,它对我有用,但也许我没有关于字符集/编码的相同配置。我使用了Postman的独立Restlet应用程序(没有servlet)。您能否向我们提供有关Restlet版本以及您使用的不同版本/扩展的更多详细信息(例如,Jackson,Servlet,...)?
以下是我对Java的看法(您可以查看此链接:How to Find the Default Charset/Encoding in Java?):
Default Charset=UTF-8
file.encoding=Latin-1
Default Charset=UTF-8
Default Charset in Use=UTF8
您还可以在标题Content-Type
的级别指定您为内容发送的字符集:application/json;charset=utf-8
。
希望它可以帮到你, 亨利