【发布时间】:2010-03-30 08:50:59
【问题描述】:
我想通过网络发送井号字符,即编码为 ISO-8859-1 的“£”。 我通过执行以下操作来执行此操作:
var _encoding = Encoding.GetEncoding("iso-8859-1");
var _requestContent = _encoding.GetBytes(requestContent);
var _request = (HttpWebRequest)WebRequest.Create(target);
_request.Headers[HttpRequestHeader.ContentEncoding] = _encoding.WebName;
_request.Method = "POST";
_request.ContentType = "application/x-www-form-urlencoded; charset=iso-8859-1";
_request.ContentLength = _requestContent.Length;
_requestStream = _request.GetRequestStream();
_requestStream.Write(_requestContent, 0, _requestContent.Length);
_requestStream.Flush();
_requestStream.Close();
当我在目标上放置断点时,我希望收到以下信息: '%a3',但我收到的是 '%u00a3'。我们测试了许多奇怪的字符,但“£”似乎是唯一有问题的字符。
有谁知道这里的问题是什么? - 非常感谢您的帮助...
比利
【问题讨论】:
-
我不太确定如何提供帮助,但出于好奇,您可以不使用 utf8 进行编码吗?通常出现此类问题的可能性要小得多。
-
不能使用 UTF8 作为我们调用的服务器(第三方服务)坚持使用 ISO 8859-1
-
我没有您的问题的答案,但很想知道如果您使用 Encoding.Default 和 'windows-1252' 作为编码会发生什么(请参阅mindprod.com/jgloss/encoding.html)。
-
保罗,请在我取得了一些进展的地方查看我的答案。我现在有一个新问题,你也许可以回答这个问题。为帮助干杯
标签: c# encoding iso-8859-1