<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的头信息,以便您的服务器可以处理这个.它在上传文件之前或之后不会触发任何转换.
总结以上是内存溢出为你收集整理的HTML文件上传中的字符编码全部内容,希望文章能够帮你解决HTML文件上传中的字符编码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)