Java AppEngine TaskQueue将字节[]数组编码为字符串时使用的编码是什么?

Java AppEngine TaskQueue将字节[]数组编码为字符串时使用的编码是什么?,java,google-app-engine,servlets,character-encoding,task-queue,Java,Google App Engine,Servlets,Character Encoding,Task Queue,从AppEngine TaskQueue服务调用的HTTP POST正文的编码是什么 如果我通过创建一个任务,HTTP请求体的编码将是什么 类似地,通过创建和检索的字符串的编码是什么 更新:我必须在中使用的字符集名称是什么 req.getParameter("myParam").getBytes(charset) 要取回我通过提交的二进制数据 它似乎是一个特定于servlet容器的默认值,在“application/x-www-form-urlencoded”的定义中没有定义,因为所有这些都已

从AppEngine TaskQueue服务调用的HTTP POST正文的编码是什么

如果我通过创建一个任务,HTTP请求体的编码将是什么

类似地,通过创建和检索的
字符串的编码是什么

更新:我必须在中使用的字符集名称是什么

req.getParameter("myParam").getBytes(charset)
要取回我通过提交的二进制数据


它似乎是一个特定于servlet容器的默认值,在“application/x-www-form-urlencoded”的定义中没有定义,因为所有这些都已经在servlet API中抽象出来了。

关于第一个,我不知道。不过,我会在
UTF-8
上下赌注,因为Javadoc到处都提到
UTF-8
。您可以使用HTTP调试器工具(如Fiddler2)调试请求主体。您可以使用带有UTF-8特定字符的字符串进行测试,这些字符串通过
string.getBytes(“UTF-8”)
转换为字节数组,然后在servlet端读取。如果它返回相同的字符,那么使用UTF-8的可能性肯定很大

对于第二个,这取决于
内容类型
请求头中的
字符集
属性。然而,这往往是不存在的(至少在使用普通网络浏览器时是如此)。但是,您可以在访问请求正文中的任何数据之前自行设置

if (request.getCharacterEncoding() == null) {
    request.setCharacterEncoding("UTF-8");
}

否则将使用平台默认值,如所指定。

关于第一个,我不知道。不过,我会在
UTF-8
上下赌注,因为Javadoc到处都提到
UTF-8
。您可以使用HTTP调试器工具(如Fiddler2)调试请求主体。您可以使用带有UTF-8特定字符的字符串进行测试,这些字符串通过
string.getBytes(“UTF-8”)
转换为字节数组,然后在servlet端读取。如果它返回相同的字符,那么使用UTF-8的可能性肯定很大

对于第二个,这取决于
内容类型
请求头中的
字符集
属性。然而,这往往是不存在的(至少在使用普通网络浏览器时是如此)。但是,您可以在访问请求正文中的任何数据之前自行设置

if (request.getCharacterEncoding() == null) {
    request.setCharacterEncoding("UTF-8");
}
否则将使用平台默认值,如所指定

如果我通过创建任务 任务选项#有效负载(字节[],字符串), HTTP的编码将是什么 请求机构是

没有编码-传入的字节数组成为HTTP请求的文本体

同样,编码是什么 通过创建的字符串的 任务选项#参数(字符串,字节[])和 通过检索 ServletRequest#getParameter(字符串)

参数使用formencoding进行编码,如在常规GET或POST请求中

如果我通过创建任务 任务选项#有效负载(字节[],字符串), HTTP的编码将是什么 请求机构是

没有编码-传入的字节数组成为HTTP请求的文本体

同样,编码是什么 通过创建的字符串的 任务选项#参数(字符串,字节[])和 通过检索 ServletRequest#getParameter(字符串)


参数使用formencoding进行编码,就像在常规GET或POST请求中一样。

谢谢您的回答。但不幸的是,它并不完全符合我的问题——这只是换了一种说法。也许我应该尝试一下,希望他们不要改变。不过,一些关于这方面的官方文件会让我更高兴。谢谢你的回答。但不幸的是,它并不完全符合我的问题——这只是换了一种说法。也许我应该尝试一下,希望他们不要改变。然而,一些关于这方面的官方文档会让我更高兴。我想你指的是-谢谢中定义的“application/x-www-form-urlencoded”@xamde这是包含参数的POST请求的内容类型,是。此编码不支持二进制内容<代码>多部分/表单数据执行。当然,这个字节数组必须以某种方式进行编码。你还能从中得到一个
字符串吗?@BalusC是的,它是这样做的-非urlsafe的字节是%-编码的。%-编码适用于字符,而不是字节。我猜你的意思是-谢谢中定义的“application/x-www-form-urlencoded”@xamde这是包含参数的POST请求的内容类型,是。此编码不支持二进制内容<代码>多部分/表单数据执行。当然,这个字节数组必须以某种方式进行编码。否则,您将如何从中获取
字符串
?@BalusC Yes确实如此-对非urlsafe的字节进行%-编码。%-编码适用于字符,而不是字节。