繁体   English   中英

使用Ajax将文件从HTML输入发送到WebApi-编码问题

[英]Sending a file from an html input to a WebApi with Ajax - Encoding issue

我有一个带有type="file"input标签和一个使用Ajax将文件发送到Webapi端点的函数。

$('#myInput').change(function () {
    if (this.files[0] === undefined) return;
    sendToWebapi(this.files[0]);
    this.value = null;
});

function sendToWebapi(file) {
    const data = new FormData();
    data.append('file', file);
    $.ajax({
        url: "myWebApiPath",
        contentType: "text/csv",
        processData: false,
        method: "POST",
        data: data
    });
}

我的问题是,法语字符在发送到WebApi时没有正确编码。 参见下面的请求正文摘录:

> ------WebKitFormBoundaryggBmtBMylhc9eoIE
Content-Disposition: form-data; name="file"; filename="myfile.csv"
Content-Type: application/vnd.ms-excel

Date;Pi�ce;Journal;Libell�;D�bit;Lettrage;Cr�dit;Solde
....

尝试显式设置字符集:

function sendToWebapi(file) {
    const data = new FormData();
    data.append('file', file);
    $.ajax({
        url: "myWebApiPath",
        contentType: "text/csv;charset=ISO-8859-1",
        processData: false,
        method: "POST",
        data: data
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM