c# - C# 中的 UTF8 到 ASCII 转换
问题描述
我知道这里已经有一个非常相似的问题,但不幸的是,最佳答案对我没有帮助。
我想通过Unity WebrequestPOST
将一些数据发送到 RESTful Web 服务。正如文件所说,
中的数据
postData
将被转义,然后通过 System.Text.Encoding.UTF8 解释为字节流。
中的数据postData
以 JSON 格式存储。远程 Web 服务将使用NewtonSoft.Json
.
不幸的是,远程 Web 服务会抛出一个JsonReaderException
, 消息,"Unexpected character encountered while parsing value: %. Path '', line 0, position 0."
这是因为发布的数据看起来像这样的字符串(截断):
%7b%22LogType%22%3a%22Drill%22%2c%22Action%22%3a%22Started%22%2c%22Description%22%3a%22...
Newtonsoft.Json
在调用库进行反序列化之前,我尝试将传入的数据从 UTF-8 转换为 ASCII :
byte[] contentBytes = await Request.Content.ReadAsByteArrayAsync();
string postContents = Encoding.ASCII.GetString(Encoding.Convert(Encoding.UTF8, Encoding.ASCII, contentBytes));
但是,JsonReaderException
仍然抛出,因为postContents
仍然看起来像这样:
%7b%22LogType%22%3a%22Drill%22%2c%22Action%22%3a%22Started%22%2c%22Description%22%3a%22...
我应该怎么做才能确保远程 Web 服务可以成功反序列化它接收到的数据?
解决方案
推荐阅读
- javascript - 如果字段为空并且用户正在尝试提交表单,如何使输入字段边框变为红色
- javascript - how can I know I have access to this state in this function?
- python - how can Control/write Temperature value with RS485port, from Django web?
- python - spark-submit 不从 s3 读取文件,只是卡在上面
- android - 在 Koin 中,何时创建和销毁视图模型?
- laravel - 拉拉维尔 | 从关联数组中过滤空值
- java - 如何从 application.yml 文件中读取一组参数
- ios - FileManager.default.removeItem 不清除存储
- r - 如果我的行本身相同,如何不计算 datediff
- puppet - Hiera - 来自哈希的变量