Java AppEngine TaskQueue将字节[]数组编码为字符串时使用的编码是什么?
从AppEngine TaskQueue服务调用的HTTP POST正文的编码是什么 如果我通过创建一个任务,HTTP请求体的编码将是什么 类似地,通过创建和检索的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”的定义中没有定义,因为所有这些都已
字符串的编码是什么
更新:我必须在中使用的字符集名称是什么
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的字节进行%-编码。%-编码适用于字符,而不是字节。