编码.默认值在Unity Player中不起作用
本文关键字:不起作用 Player Unity 默认值 编码 | 更新日期: 2023-09-27 18:01:13
我的应用程序最近遇到了一个小问题,它基本上是从我的网站下载字符串和图像,现在它在Unity Editor中运行得很好,但当我构建和运行时,它再也不能正确打印图像了!这是的重要代码
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((只返回图像而不返回字符串的情况下,它在构建和编辑器中都能很好地工作,而且,我已经尝试过字符串ret=Convert.ToBase64String(data(;但随后返回.Splitt((;返回
IndexOutOfRangeException:数组索引超出范围。
所以,是的,差不多了,我希望你有一个美好的一天!
p.S:我的网站是php,sendMessage((非常适合
如果该代码中存在编码问题,请在编辑器中查看Encoding.Default.EncodingName
,而不是在运行时查看。这将告诉您默认编码是否不同。
作为一个潜在的解决方案,不要使用默认值。例如,使用Encoding.UTF8
。如果你发现Unity编辑器使用的是哪种编码,你可以使用它。
我确实修复了它,找到了我的网站使用echo mb_internal_encoding();
发送给我的数据的编码,即ISO-8859-1,然后我创建了Encoding ISO = Encoding.GetEncoding("ISO-8859-1");
,并使用它而不是默认值,它就像我希望的那样工作!