当我将文件上传到服务器时,一切都很好。但是,如果文件名包含西里尔字符,则在服务器上显示带有问号的文件名。
当我向服务器发送请求时,我没有设置任何字符编码。
我知道如果你在发出请求时没有在标题中添加任何字符编码,那么RestEasy提供的默认字符编码就是us-ascii。我尝试了几种方法来改变它:
谢谢!
也发布在jboss.org forum
上答案 0 :(得分:2)
不要更改Content-Type,而是使用ContainerRequestFilter
覆盖默认的charset属性:
@Provider
public class CharsetFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
requestContext.setProperty(InputPart.DEFAULT_CHARSET_PROPERTY, "UTF-8");
}
}
也许您应该检查是否提供了编码,只有在没有时才覆盖。