我正在使用HTTP标头将包含Unicode字符的字符串(例如ñ
)发送到自定义http服务器。
当我将字符串添加为标题时:
webClient.Headers.Add("Custom-Data", "señor");
服务器将其解释为:
se�or
显然我需要对值进行不同的编码,但我不确定要使用哪种编码。
如何编码此HTTP标头以保留扩展/特殊字符?
答案 0 :(得分:2)
正如@Jordan建议的那样,将字符串表示为base64(使用UTF8编码)效果很好:
在客户端:
webClient.Headers.Add("Custom-Data",
Convert.ToBase64String(Encoding.UTF8.GetBytes("señor")));
在服务器上:
string customData = Encoding.UTF8.GetString(Convert.FromBase64String(customHeader.Value));