我将文件作为八位字节流发送到服务器,我需要在标头中指定文件名:
String filename = "«úü¡»¿.doc"
URL url = new URL("http://www.myurl.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.addRequestProperty("Accept", "application/json; charset=UTF-8");
conn.addRequestProperty("Content-Type", "application/octet-stream; charset=UTF-8");
conn.addRequestProperty("Filename", filename);
// do more stuff here
Run Code Online (Sandbox Code Playgroud)
问题是,我需要发送的一些文件的文件名包含非ASCII字符.我已经读过你不能在HTTP头中发送非ASCII文本.
我的问题是:
您不能在HTTP标头中使用非ASCII字符,请参阅RFC 2616.URI本身由RFC 2396标准化,也不允许非ASCII.RFC说:
URI语法的设计具有全局可转录性作为其主要关注点之一.URI是来自非常有限的集合的字符序列,即基本拉丁字母,数字和一些特殊字符的字母.
要在URI中使用非ASCII字符,您需要使用%hexcode语法来转义它们(请参阅RFC 2396的第2节).
在Java中,您可以使用java.net.URLEncoder
该类来完成此操作.
归档时间: |
|
查看次数: |
7650 次 |
最近记录: |