gpt4 book ai didi

html - HTML文件上传中的字符编码

转载 作者:太空狗 更新时间:2023-10-29 13:52:38 24 4
gpt4 key购买 nike

我有一个简单的 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 跟踪了浏览器发送的数据:

  1. 设置 enctypemultipart/form-data; charset=utf-8 -> 由于某种原因导致浏览器发送 Content-Type: application/x-www-form-urlencoded - 就像它无法使用我指定的 enctype。

  2. 添加到 form标记属性:accept-charset="UTF-8" -> 没有效果。

  3. 使用 <meta charset="UTF-8"><head> -> 没有效果。

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

最佳答案

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

enctype=multipart/表单数据; charset=utf-8 只是添加有关字符集的 header 信息,以便您的服务器可以处理它。它不会在上传文件之前或之后触发任何转换。

关于html - HTML文件上传中的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34787593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com