HTML文件上传中的字符编码
我有一个简单的
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. 我认为文件上传应该像这样工作.我不希望我的服务器关心不同的编码,而是以标准方式接收数据.但如果不可能,我可以以某种方式从浏览器向服务器发送有关编码的信息吗?我很感激任何建议,谢谢. 解决方法
您必须区分内容(字节)和编码(字节的解释). html文件上传功能只传输字节而不关心解释,因为它不仅限于文本文件,而且还能够传输二进制文件.由于您的服务器收到了必须处理解释的字节.
ENCTYPE =多部分/格式的数据; charset = utf-8只是添加有关charset的头信息,以便您的服务器可以处理这个.它在上传文件之前或之后不会触发任何转换. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |