C# 如何更改HttpWebRequest中UserAgent的编码?

C# 如何更改HttpWebRequest中UserAgent的编码?,c#,.net,ios,unicode,user-agent,C#,.net,Ios,Unicode,User Agent,今天,当我试图使用HttpWebRequest发布请求时,遇到了UserAgent的编码问题 通常,UserAgent由拉丁字母和标点符号组成。但是,我需要模拟iOS应用程序的web请求,其UA包含一些Unicode(特别是中文)字符 使用Fiddler获取原始请求,我发现应用程序在其UA中使用了Unicode编码。我无法用C#发布它;我得到了这个错误: 您不能尝试在UserAgent中发送Unicode。但这对我的项目来说真的很重要。现在我可以模拟应用程序的请求,而不需要UA的字节 如何更改U

今天,当我试图使用HttpWebRequest发布请求时,遇到了UserAgent的编码问题

通常,UserAgent由拉丁字母和标点符号组成。但是,我需要模拟iOS应用程序的web请求,其UA包含一些Unicode(特别是中文)字符

使用Fiddler获取原始请求,我发现应用程序在其UA中使用了Unicode编码。我无法用C#发布它;我得到了这个错误:

您不能尝试在UserAgent中发送Unicode。但这对我的项目来说真的很重要。现在我可以模拟应用程序的请求,而不需要UA的字节


如何更改UA编码?

根据标准(和),除了iso-8859-1之外,不能对任何http头字段(如用户代理)使用任何其他编码

但是,您可以应用rfc 2047的编码方案将unicode字符串映射到8859-1-字符串;简而言之,您可以使用字符集标识符包装文本,并在其各自的编码中用八位字节序列的十六进制值替换unicode代码点

例如:

用户代理:百万欧元-浏览器
变为
用户代理:=?utf-8?q?百万欧元-=e2=82=ac浏览器?=
,其中
e2 82 ac
为欧元符号的utf-8八位字节序列