txt文件在windows中默认采用ANSI编码方式。
我们是采用阿里云oss方式存储文件的,需要下载时,在前端自定义a标签进行下载。
浏览器默认直接打开txt文件,但浏览器的编码是utf-8,这样就会显示乱码。
找了很多方案:
1、在a标签中添加download属性。(跨域后该属性会失效,同源可以)
2、(推荐)在后端上传文件时,增加application/octet-stream属性。
public void uploadStreamInputStream inputStream, String objectName) { OSS oss = new OSSClientBuilder).buildendpoint, accessKey, accessSecret); PutObjectRequest request = new PutObjectRequestbucket, objectName, inputStream); ObjectMetadata metadata = new ObjectMetadata); metadata.setContentType"application/octet-stream"); request.setMetadatametadata); oss.putObjectrequest); oss.shutdown); }
文档地址:https://help.aliyun.com/document_detail/106802.html
吐槽:竟然在Android SDK说明文档里
知止而后有定;定而后能静;静而后能安;安而后能虑;虑而后能得。