use*_*293 0 c# asp.net-core-webapi
我里面有一个文件dGVzdA ==,dGVzdA ==是单词test convert in byte []。
之后,我想让这个词再次进行字符串测试,所以我这样做:
[HttpPost("[Action]")]
public async Task<IActionResult> ExtractLicenseData(IFormFile file){
string fileContents ;
using (var stream = file.OpenReadStream())
{
using (var reader = new StreamReader(stream))
{
fileContents = await reader.ReadToEndAsync();
}
}
string test = Encoding.ASCII.GetString(fileContents); // error
return BadRequest(test);
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试做时,string test = Encoding.ASCII.GetString(fileContents);我出现了错误:
无法从“字符串”转换为“字节[]”
恢复 :
我有我的字符串dGVzdA ==我想最终在原始字符串测试中将其转换。
/!\要从测试转到dGVzdA ==,请执行此操作Encoding.ASCII.GetBytes("test")。
dGVzdA ==是单词test convert in byte []。
不,dGVzdA==是字节0x74、0x65、0x73、0x74 ...的base64编码表示形式,而该文本又是文本“ test”的ASCII编码表示形式。
因此,如果您想要一个内容为0x74、0x65、0x73、0x74的字节数组,则只需执行base64解码即可:
byte[] bytes = Convert.FromBase64String(fileContents);
Run Code Online (Sandbox Code Playgroud)
然后,如果您想通过应用ASCII编码返回到字符串,则可以使用:
string text = Encoding.GetString(bytes);
Run Code Online (Sandbox Code Playgroud)
但是,如果无论如何文件内容肯定都是ASCII文本,那么最好避免使用base64部分会更好。目前尚不清楚其来源。
从
test开始dGVzdA==我做这个Encoding.ASCII.GetBytes("test")。
不,你没有。Encoding.ASCII.GetByte("test")返回一个带有字节0x74、0x65、0x73、0x74的字节数组,而这dGVzdA==是通过base64编码将该字节数组转换为字符串的结果。
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |