1

我正在使用 HTTP 标头将包含 Unicode 字符(例如ñ)的字符串发送到自定义 http 服务器。

当我将字符串添加为标题时:

webClient.Headers.Add("Custom-Data", "señor");

它被服务器解释为:

se�or

显然我需要对值进行不同的编码,但我不确定要使用什么编码。

我应该如何编码这个 HTTP 标头以保留扩展/特殊字符?

4

1 回答 1

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));
于 2013-05-02T21:35:58.077 回答