我在使用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)版本没有发生这种情况,这就是为什么我在错误的地方寻找原因。
由于 埃迪
答案 0 :(得分:0)
尝试在调用UploadValues之前将client.Encoding设置为UTF-8。还要确保您在服务器上将文本读作UTF-8。
答案 1 :(得分:0)
在帖子参数上尝试this.hdnDaten.Value = HttpUtility.UrlEncode("ÄÖÜ|äöü|ß|é|@");
。
在PHP上,您需要通过html_entity_decode