wcf rest 中的文件上传:读取时流中的特殊字符被替换

File upload in wcf rest: special characters in stream gets replaced when reading

我正在尝试编写一个 WCF Restful api 来将文件上传到服务器。我浏览了 Multipart Parser 的帖子,并尝试使用它们。我面临的问题是,在读取流内容时,图像文件中的一些特殊字符被替换,我最终得到的文件几乎是原始大小的两倍。

示例: 下面是图像文件中的一行

-¦ã09°O ð -ÍQa:BÐ`QËÎâ<Îä\Îæ|ÎèœÎê¼Îì,    ;

这将转换为

�-���09�O � -�Qa:B�`Q���<��\��|������,  �  ;

我的假设是这与用于读取流的编码有关,因此我尝试为此使用 StreamReader,但没有成功。

MultipartParser parser;
using (System.IO.StreamReader reader = new System.IO.StreamReader(stream))
{
    var encoding = reader.CurrentEncoding;
    parser.Parse(stream, encoding);
}

已编辑:

UI张

<form id="testForm" action="--service url--" method="POST" enctype="multipart/form-data">
    <table>            
        <tr><td>File:</td><td><input type="file" name="Contents"></td></tr>
        <tr><td/><td><input type="submit" value="Send"></td></tr>
    </table>
</form>

这是我从 fiddler 那里得到的请求

Cache-Control: max-age=0
Content-Length: 278783
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryokLIHmhMy8bbelA6
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8

------WebKitFormBoundaryokLIHmhMy8bbelA6
Content-Disposition: form-data; name="Contents"; filename="someimage.jpg"
Content-Type: image/jpeg

--file content here---

------WebKitFormBoundaryokLIHmhMy8bbelA6--

感谢大家的帮助,但问题似乎出在编码上。 使用这个:Encoding.GetEncoding("iso-8859-1"),一些修整解决了它。