如何将复杂的字符串从C#发送到PHP?

如何将复杂的字符串从C#发送到PHP?,c#,php,string,webclient,C#,Php,String,Webclient,我正在将一个level构建成一个C#字符串,使用每个字符来保存两个不同的元素。我在每个字符中使用所有16位。我能够保存在一个文本文件的水平,并读取它回来没有问题。这看起来很难看,因为许多字符与等于null的内容相匹配。当我尝试将它发送到PHP(下面的代码)时,我立即回显收到的字符串。乍一看,数据是错误的。在检查每个字符串中的位时,我可以看到两个应该相同的字符串之间没有真正的关系 public static void UploadLevel(int userID, string level

我正在将一个level构建成一个C#字符串,使用每个字符来保存两个不同的元素。我在每个字符中使用所有16位。我能够保存在一个文本文件的水平,并读取它回来没有问题。这看起来很难看,因为许多字符与等于null的内容相匹配。当我尝试将它发送到PHP(下面的代码)时,我立即回显收到的字符串。乍一看,数据是错误的。在检查每个字符串中的位时,我可以看到两个应该相同的字符串之间没有真正的关系

    public static void UploadLevel(int userID, string levelData)
    {
        Debug.Log("LEVEL OUT:");
        Scene_Editor.LevelToBinary(levelData);
        using (var client = new WebClient())
        {
            var values = new NameValueCollection();
            values["uid"] = userID.ToString();
            values["leveldata"] = levelData;

            var response = client.UploadValues("http://example.com/uploadlevel.php", values);

            var responseString = System.Text.Encoding.UTF32.GetString(response);
            Debug.Log("levelData BACK");
            Scene_Editor.LevelToBinary(responseString);
        }
    }
这里是uploadlevel.php

<?php
   echo $_POST['leveldata'];
?>

下面是一个非常简短的级别转换为字符串的示例(3个字符是最小的,最多可以达到99个字符)

调平:ㄐ
分解成二进制:
0)0010001011111(似乎没有与此值关联的字符)
1) 0011000100010000 (ㄐ)
2) 0010000001100000(似乎没有与此值关联的字符)

水平后退:询還
分解成二进制:
0) 1000101111100010 (询) 1) 1001000010000100 (還)


现在,我甚至不需要这个字符串,只要我可以将它存储在数据库中,并将其取回,然后将位转换回一个级别。有什么想法吗?另外,我正在使用.net 4.0。

你能给我们展示一个输入字符串和输出的示例吗?我不知道你的数据是以get还是post的形式发送的。使用$\u post代替$\u REQUEST beca使用request accept get和post。“字符数与等于null的内容匹配”@devlin:我在原来的帖子中添加了一个例子。jewelhuq:它使用了$\u post。在我尝试这个棘手的帖子之前,我还有一些其他的页面和命令在工作,它们都使用了post。由于我从帖子中获取了数据,所以设置得很清楚。@Mike:我的意思是,它似乎没有任何与二进制组合相关的字符。我在主要帖子中添加了一个示例。我没有使用===或==,我将答案分解为二进制,并在视觉上确保它是相同的。如何开始base64编码/解码?