我正在使用 Unity 3D 的 WWW 发出 http 请求:http://docs.unity3d.com/ScriptReference/WWW.html
似乎无论我试图访问什么样的数据,它每次都只返回:����。我试过 json 文件,我试过只生成一个字符串的 php。我似乎无法访问服务器上的值。
C#:
public string url = "http://www.onelittledesigner.com/data.php";
IEnumerator Start() {
WWW www = new WWW(url);
yield return www;
if (!string.IsNullOrEmpty(www.error)) {
Debug.Log(www.error);
} else {
Debug.Log(www.text);
}
}
PHP:
<?php
echo "textiness";
?>
注意: 我已经使用 www.texture 成功地从服务器中提取图像。但是,www.text 似乎不起作用。
最佳答案
从评论中复制答案,并进行一些额外的测试。我的结果在评论中。请注意,使用 Default、ASCII 或 UTF8 确实可以在我的机器上运行 - 它也应该在您的机器上运行。
// returned from www.bytes, copied here for readability
byte[] bytes=new byte[]{116, 101, 120, 116, 105, 110, 101, 115, 115};
string customDecoded="";
foreach(var b in bytes)
customDecoded+=(char)b;
Debug.Log(customDecoded); // textiness
Debug.Log(System.Text.Encoding.Default); // System.Text.ASCIIEncoding
Debug.Log(System.Text.Encoding.Default.GetString(bytes)); // textiness
Debug.Log(System.Text.Encoding.ASCII.GetString(bytes)); // textiness
Debug.Log(System.Text.Encoding.Unicode.GetString(bytes)); // 整瑸湩獥
Debug.Log(System.Text.Encoding.UTF7.GetString(bytes)); // textiness
Debug.Log(System.Text.Encoding.UTF8.GetString(bytes)); // textiness
Debug.Log(System.Text.Encoding.UTF32.GetString(bytes)); // 整湩
Debug.Log(System.Text.Encoding.BigEndianUnicode.GetString(bytes)); // 瑥硴楮敳
请检查 System.Text.Encoding.Default
是否为 ASCIIEncoding,是否更改了默认值?
关于c# - www.text 在 Unity3D (C#) 中返回奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24841800/