txt文件在windows中默認采用ANSI編碼方式。
我們是采用阿里雲oss方式存儲文件的,需要下載時,在前端自定義a標簽進行下載。
瀏覽器默認直接打開txt文件,但瀏覽器的編碼是utf-8,這樣就會顯示亂碼。
找了很多方案:
1、在a標簽中添加download屬性。(跨域后該屬性會失效,同源可以)
2、(推薦)在后端上傳文件時,增加application/octet-stream屬性。
public void uploadStream(InputStream inputStream, String objectName) { OSS oss = new OSSClientBuilder().build(endpoint, accessKey, accessSecret); PutObjectRequest request = new PutObjectRequest(bucket, objectName, inputStream); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType("application/octet-stream"); request.setMetadata(metadata); oss.putObject(request); oss.shutdown(); }
文檔地址:https://help.aliyun.com/document_detail/106802.html
吐槽:竟然在Android SDK說明文檔里