Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 编码。默认不在Unity Player中工作_C#_Php_Encoding_Unity3d_Base64 - Fatal编程技术网

C# 编码。默认不在Unity Player中工作

C# 编码。默认不在Unity Player中工作,c#,php,encoding,unity3d,base64,C#,Php,Encoding,Unity3d,Base64,我最近在我的应用程序中遇到了一个小问题,它基本上是从我的网站下载一个字符串和一个图像,现在它在Unity编辑器中工作得非常好,但是当我构建和运行时,它不再正确地打印图像了!下面是重要的代码 byte[] data = sendMessage("https://mywebsite.com", values); string ret = Encoding.Default.GetString(data); var split = ret.Split(new string[] {"//"}, Strin

我最近在我的应用程序中遇到了一个小问题,它基本上是从我的网站下载一个字符串和一个图像,现在它在Unity编辑器中工作得非常好,但是当我构建和运行时,它不再正确地打印图像了!下面是重要的代码

byte[] data = sendMessage("https://mywebsite.com", values);
string ret = Encoding.Default.GetString(data);
var split = ret.Split(new string[] {"//"}, StringSplitOptions.None);
byte[] texdata = Encoding.Default.GetBytes(split[1]);
varstr = split[0];
texdata在tex.LoadImage()中使用;而varstr是为以后保存的,现在当我在编辑器中时,它可以很好地工作,但是当构建时,图像显示了一个大的?(png无效)并且varstr不能正确返回。我100%确信这是编码,就像刚才做的那样

byte[] data = sendMessage("https://mywebsite.com", values);
byte[] texdata = data;
其中sendMessage()只返回图像而不返回字符串,它在构建和编辑器中都能很好地工作,而且我已经尝试过string ret=Convert.ToBase64String(数据);但是,然后,重新拆分();返回

IndexOutOfRangeException:数组索引超出范围

是的,差不多就是这样,我希望你有一个愉快的一天

  • 附言:我的网站是php,sendMessage()工作得很好


如果代码中存在编码问题,请查看编辑器中的与运行时中的。这将告诉您默认编码是否不同


作为一个潜在的解决方案,不要使用默认值。例如,使用。如果您找到Unity编辑器使用的是哪种编码,您可以使用它。

我确实通过找到我的网站使用echo mb_internal_encoding()发送给我的数据的编码来修复它是ISO-8859-1,然后我创建了
Encoding ISO=Encoding.GetEncoding(“ISO-8859-1”)并使用它而不是默认值,它就像我希望的那样工作

我认为,使用调试器并查看实际数据以查看编辑器和运行时中的不同之处,会使您受益匪浅。否则,print语句应该足够好,可以调试这个。一些具体的事情:
Split
抛出
indexootfrangeexception
是没有意义的,你是说
Split[1]
?此外,数据是否基于64?除非确实如此,否则使用
ToBase64String
是没有意义的。您可能只是没有base64数据,这解释了为什么在尝试转换时没有任何
/
字符!是的,我的错我是说split[1]它返回1252,我尝试过1252,1252在运行时尝试将它馈送给tex.LoadImage()时返回一个空白图像,空白图像不是错误图像,而是空白图像,出于某些原因,@31eee384,我还尝试过将php数据编码为utf-8,但随后许多字符丢失,图像(png)不再有效,简而言之,我应该使用什么编码来编码我的图像?