'%'在字符串中不被接受来切断php代码

时间:2017-08-30 13:41:35

标签: c# php

我正在使用C#和.php文件在服务器上编写和读取.txt文件,在我的C#下面

IEnumerator writeString()
{
    string mycontent = "42.00 £3.80 sending test string";
    url = "http://www.myServer.com/ewExternalFiles/writeScript.php?txt=" + mycontent;

    WWW www = new WWW(url);
    yield return www;
    progress = www.progress;

    while(progress < 1)
    {
        yield return null;
    }
    if (www.error == null)
    {
        Debug.Log("successfully written to server ..");
    }
    else
    {
        Debug.Log("Error! (" + www.error + ")");
    }
}

我的.php代码

<?php
$txtcontent = $_REQUEST['txt'];
$fp = fopen("file.txt", w);
fwrite($fp, $txtcontent);
echo $fp;
fclose($fp);
?>

当阅读它时,一切正常,但如果我改变了行

string mycontent = "42.00 £3.80 sending test string";

string mycontent = "42.00% £3.80 sending test string";

我收到错误

  

“错误! (400 Bad Request)'

由于字符串中的%,从服务器

,我的字符串中不能有这个吗?罐。

1 个答案:

答案 0 :(得分:1)

只能使用ASCII字符集通过Internet发送URL。 由于URL通常包含ASCII集之外的字符,因此必须将URL转换为有效的ASCII格式。

string mycontent = WebUtility.UrlEncode("42.00% £3.80 sending test string");

UrlEncode方法用于接收字符串并用&#34;%&#34;替换不安全的ASCII字符。后跟两个十六进制数字。