我最近通过我的应用程序遇到了一个小问题,它基本上从我的网站上下载了一个字符串和一个图像,现在它在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(data);但后来ret.Split();返回
IndexOutOfRangeException:数组索引超出范围。
所以是的,那就是它,我希望你过得愉快!
P.S:我的网站是php,sendMessage()工作正常
答案 0 :(得分:1)
如果它是该代码中的编码问题,请在编辑器中查看Encoding.Default.EncodingName
与运行时期间的对比。这将告诉您默认编码是否不同。
作为一种潜在的解决方案,请勿使用默认设置。例如,使用Encoding.UTF8
。如果您发现Unity编辑器正在使用哪种编码,您可以使用它。
答案 1 :(得分:0)
我通过查找我的网站使用echo mb_internal_encoding();
发送给我的数据的编码来修复它,Encoding ISO = Encoding.GetEncoding("ISO-8859-1");
是ISO-8859-1,然后我创建了DefaultMutableTreeNode
并使用它而不是默认它并且它工作了就像我想要的那样!