使用POST方法从ASP页面向PHP页面发送数据的德语字符

时间:2014-03-08 17:04:22

标签: c# php asp.net

我在使用POST方法将数据从ASP发送到PHP页面时遇到问题。 我想发送带有姓名的邮件。因为我住在奥地利,所以名字是德语,我们有一些特殊字符。这些字符不会写入。

我仍然很擅长用C#btw编程。我之前在Java-Script中使用过该网站,但我必须将其与数据库连接,因此我切换到C#,现在我就像一个“树林里的宝贝”。

       this.hdnDaten.Value = "ÄÖÜ|äöü|ß|é|@";

// mit POST versuchen
   using (var client = new WebClient())
   {
       var postData = new System.Collections.Specialized.NameValueCollection();
       postData.Add("von", this.hdnVon.Value);
       postData.Add("an", this.hdnAn.Value);
       postData.Add("betreff", this.hdnBetreff.Value);
       postData.Add("daten", this.hdnDaten.Value);
       byte[] response = client.UploadValues("http://xxxxxx.php", "POST", postData);
       var responsebody = Encoding.UTF8.GetString(response);
   }

这就是上面的字符(在this.hdnDaten.Value中)到达邮件正文的方式:

  

一个“A-AOE |äöü|ß| A©| @

有人知道我最终能做些什么来获得相同的角色吗?

编辑20143013:我想我有一个线索:我必须将postData编码为ANSI(代码页1252)。我试过这样做,但它不起作用。有没有人知道如何做到这一点?

编辑20140320:我甚至不敢给你答案:我一直在寻找错误的地方(有点像MH370):问题在于邮件的接收方(我使用的是POP3) - 用于测试的观察者);当我将邮件下载到Outlook时,一切正常。有趣的是,原始(Javascript)版本没有发生这种情况,这就是为什么我在错误的地方寻找原因。

由于 埃迪

2 个答案:

答案 0 :(得分:0)

尝试在调用UploadValues之前将client.Encoding设置为UTF-8。还要确保您在服务器上将文本读作UTF-8。

答案 1 :(得分:0)

在帖子参数上尝试this.hdnDaten.Value = HttpUtility.UrlEncode("ÄÖÜ|äöü|ß|é|@");

在PHP上,您需要通过html_entity_decode

解码参数
相关问题