将包含未知字符的字符串追加到另一个字符串不工作

本文关键字:字符串 另一个 工作 追加 未知 字符 包含 | 更新日期: 2023-09-27 18:19:05

我需要发送一个文件作为POST请求,所以我将文件转换为字节,然后通过以下方式转换为字符串:

 string file = System.Text.Encoding.UTF8.GetString(File.ReadAllBytes(param.ToString()))

,这导致了下面的字符串,字符串比这个长,我把它剪掉:

lengthi131072e6:pieces6620:��9���[�F�j�xs~ =�Z��L��Г��>�d������{���&ut�%t�Sƍ�:[�*�I* ŀ�|<4S�1Ĉt�p�Jߊg$K�"

当我尝试像这样将任何字符串附加到这个字符串时:

file = file + "AnyText";

"AnyText"被完全忽略,"file"的值保持不变。

请注意,我需要将文件转换为字符串并附加一些其他参数,因为这是请求工作的必要条件。

编辑:

我使用fiddler2,当我POST相同的文件时,我得到的字符串与我上面发布的字符串相同。下面是fiddler2中的POST:

  ------WebKitFormBoundaryAiZYKGjC4Yd8E9z4
Content-Disposition: form-data; name="file"; filename=""
Content-Type: application/x-bittorrent
 lengthi131072e6:pieces6620:��9���[�F�j�xs~ =�Z��L��Г��>�d������{���&ut�%t�Sƍ�:[�*�I* ŀ�|<4S�1Ĉt�p�Jߊg$K���6'c�x;���,��ȡ

如果有任何方法可以产生相同的结果,我洗耳恭听

将包含未知字符的字符串追加到另一个字符串不工作

我在将文件转换为UTF8时犯了一个错误,因为它没有意义。解决我的问题是将文件转换为byte[]和所有其他字符串参数。我把它们连接在一起,并在POST中发送它们,它成功了。