gpt4 book ai didi

java - 如何让 resteasy MultipartFormDataInput 使用 UTF-8 解码字符串?

转载 作者:行者123 更新时间:2023-11-28 22:36:03 25 4
gpt4 key购买 nike

我使用的是 resteasy 2.3.4-Final,在接受 multipart/form-data 的调用中遇到 UTF-8 问题。我的 API 的使用者是 iOS 和 Android 设备。发送的任何字符串参数不包含字符集,因此 resteasy 似乎正在使用 us-ascii 编码解码字符串。我已经做了很多工作来修复从 db 层到创建将强制字符编码为 utf-8 的过滤器的所有其他内容。这解决了所有 form-url-encoded POST 的问题,但现在两个调用仍然不起作用,它们都是 multipart/form-data 调用。我知道消费者应该在消息部分发送 utf-8 字符集,但我想弄清楚是否有任何方法可以暂时强制使用 UTF-8 解码所有内容,因为 Apple 需要大约 2 周的时间批准对我们的应用程序进行更新,这并不理想,但我们可能不得不在那个更新上硬着头皮。以前有没有人这样做过并成功上传了多部分表单?

谢谢!

最佳答案

根据 RESTEasy 文档,应该可以覆盖默认内容类型:

http://docs.jboss.org/resteasy/docs/2.3.4.Final/userguide/html_single/index.html#multipart_overwrite_default_content_type

import org.jboss.resteasy.plugins.providers.multipart.InputPart;

@Provider
@ServerInterceptor
public class ContentTypeSetterPreProcessorInterceptor implements
PreProcessInterceptor {

public ServerResponse preProcess(HttpRequest request,
ResourceMethod method) throws Failure, WebApplicationException {
request.setAttribute(InputPart.DEFAULT_CONTENT_TYPE_PROPERTY,
"*/*; charset=UTF-8");
return null;
}

}

关于java - 如何让 resteasy MultipartFormDataInput 使用 UTF-8 解码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11215733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com