加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

HTML文件上传中的字符编码

发布时间:2020-12-14 18:39:28 所属栏目:资源 来源:网络整理
导读:我有一个简单的 HTML表单: form action="/file/import" method="POST" enctype="multipart/form-data" input id="csvFile" type="file" name="file"/form 我在上传使用不同字符集保存的CSV文件时遇到问题.是否有可能使浏览器将任何文件转换为UTF-8并以这种
我有一个简单的 HTML表单:
<form action="/file/import" method="POST" enctype="multipart/form-data">
  <input id="csvFile" type="file" name="file">
</form>

我在上传使用不同字符集保存的CSV文件时遇到问题.是否有可能使浏览器将任何文件转换为UTF-8并以这种方式发送到服务器?

在上传最初保存在ISO-8859-2中的文件后,我尝试了几个选项并跟踪浏览器使用ngrep发送的数据:

>将enctype设置为multipart / form-data; charset = utf-8 – >这由于某种原因导致浏览器发送Content-Type:application / x-www-form-urlencoded – 就像它无法使用我指定的enctype.
>向表单标记添加属性:accept-charset =“UTF-8” – >没有效果.
>使用< meta charset =“UTF-8”> in< head> – >没有效果.

我认为文件上传应该像这样工作.我不希望我的服务器关心不同的编码,而是以标准方式接收数据.但如果不可能,我可以以某种方式从浏览器向服务器发送有关编码的信息吗?我很感激任何建议,谢谢.

解决方法

您必须区分内容(字节)和编码(字节的解释). html文件上传功能只传输字节而不关心解释,因为它不仅限于文本文件,而且还能够传输二进制文件.由于您的服务器收到了必须处理解释的字节.

ENCTYPE =多部分/格式的数据; charset = utf-8只是添加有关charset的头信息,以便您的服务器可以处理这个.它在上传文件之前或之后不会触发任何转换.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读