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说明文档里
知止而后有定;定而后能静;静而后能安;安而后能虑;虑而后能得。