使用WebClient.Headers.Add()编码报头值
本文关键字:编码 报头 WebClient Headers Add 使用 | 更新日期: 2023-09-27 18:11:48
我使用HTTP头发送包含Unicode字符(如ñ
)到自定义HTTP服务器的字符串。
当我添加字符串作为标题时:
webClient.Headers.Add("Custom-Data", "señor");
被服务器解释为:
se�or
显然我需要对值进行不同的编码,但我不确定使用哪种编码。
我应该如何编码这个HTTP头以保留扩展/特殊字符?
- porneL对相关问题的回答令人困惑。
- 未回复,相关:c# WebClient非英文请求头值编码
正如@Jordan建议的那样,将字符串表示为base64(使用UTF8编码)效果很好:
客户端:
webClient.Headers.Add("Custom-Data",
Convert.ToBase64String(Encoding.UTF8.GetBytes("señor")));
服务器端:
string customData = Encoding.UTF8.GetString(Convert.FromBase64String(customHeader.Value));