【发布时间】:2016-04-19 15:52:12
【问题描述】:
我有一个简单的 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。在
form标记中添加一个属性:accept-charset="UTF-8"-> 无效。在
<head>中使用<meta charset="UTF-8">-> 无效。
我认为文件上传应该像这样工作。我不希望我的服务器关心不同的编码,而是以标准化的方式接收数据。但是如果不可能,我可以以某种方式将有关编码的信息从浏览器发送到服务器吗?我将不胜感激任何建议,谢谢。
【问题讨论】:
标签: html forms file-upload utf-8 character-encoding