用form表单的enctype属性传输“流”信息,如何解决中文乱码问题

2021-01-05 14:14发布

之前手写了一个文件上传的小程序,form的enctype设为:multipart/form-data,文件上传后(所选文件文件名为中文),在页面再查看,文件名就成乱码了,但是内容并没乱码

标签:
7条回答
ゆ 、 Hurt°
2楼-- · 2021-01-05 14:31

https://blog.csdn.net/zhouyingge1104/article/details/38322403 里面有

查看更多
何必那么认真
3楼-- · 2021-01-05 14:35

这是因为电脑本身文件名的中文编码格式不是utf-8 但是你代码的编码格式却是utf-8 这就造成了编码格式不一致的问题 如果是英文的好像不会有这个问题(具体我忘记了)解决的方式就是代码格式的转变 好像电脑中文的文件名格式是gb2312吧 还是GBK啊 不是很记得了  你将它转为utf-8就可以了

查看更多
一夜七次
4楼-- · 2021-01-05 14:36

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

这一段有没有。

查看更多
甜甜的少女心
5楼-- · 2021-01-05 14:37

首先你的上传文件是不是在本地服务器www之类的目录下, 另外header头里面显示的编码是啥   如果是小程序,看看uploadfile的参数加上header: {“chartset”:”utf-8”}这个试试

查看更多
我只想做你的唯一
6楼-- · 2021-01-05 14:42

这件事和 “文件上传“ 、”form“ 、”enctype设为:multipart/form-data”

没有毛线关系。

查看更多
Anthone
7楼-- · 2021-01-05 14:48

我自己在读取传至服务端的流文件,截取其中文件名字符串时使用了   “String filename = str.substring(beginIndex,endIndex);//截取文件名”  强行读取内容并转换为string,而其他内容则是用

while((n=randomfile.readByte()) != -1&&i <= 4)
{
if(n=='\n')
{
startext = randomfile.getFilePointer();
i++;
}
}

二进制形式直接写入,所以只有名字会乱码

查看更多
登录 后发表回答