我正在发送文本 México D.F. 从 javascript 到 C# 但我得到 M??xico D.F. 。
我的 C# 代码如下。
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
string PostbackData = enc.GetString(context.Request.BinaryRead(context.Request.TotalBytes));
}
PostbackData 包含 México D.F. 文本为 M??xico D.F. 。
我该如何解决。请帮我。
最佳答案
你不应该使用 ASCII
,因为那里没有这样的符号 é
,所以使用 Encoding.UTF8 代替:
using System.Text;
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
//System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
string postbackData = Encoding.UTF8.GetString(context.Request.BinaryRead(context.Request.TotalBytes));
}
编辑,正如 John Skeet 提到的 :您可以从您的请求中使用 Encoding 而不是尝试猜测它 - 有时甚至 UTF-8 是不够的,所以更好的方法是:
using System.Text;
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
//System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
string postbackData = context.Request.ContentEncoding.GetString(context.Request.BinaryRead(context.Request.TotalBytes));
}
关于c# - 墨西哥 P.D.F.出现在 M??xico D.F.在回发时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13411955/