javascript - Texture2D 到 byte[] 到 String

标签 javascript string unity-game-engine byte unityscript

我在将Texture2D类型图像转换为字节然后转换为字符串时遇到问题。当我执行以下操作时:

var myTextureBytes : byte[] = myTexture.EncodeToPNG();
Debug.Log(System.Text.Encoding.UTF8.GetString(myTextureBytes));

我刚刚得到“�PNG”的日志输出。为什么这么短?问号是什么? Unity 不应该能够解释 UTF-8 字符吗?另外,当我将其发送到 NodeJS 服务器时,它显示 SyntaxError: Unexpected token 并使服务器崩溃。

最佳答案

问题在于 PNG 纹理表示的字节不是 UTF-8 编码的,这仅适用于文本。

要将二进制数据转换为字符串,我建议使用 Base64 编码。

var myTextureBytes : byte[] = myTexture.EncodeToPNG();
var myTextureBytesEncodedAsBase64 : String = System.Convert.ToBase64String(myTextureBytes);

关于javascript - Texture2D 到 byte[] 到 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31990948/

相关文章:

javascript - 确定哪个元素引用了当前 html

c - 当没有语法错误时,此代码中的 if 情况不起作用

unity-game-engine - Unity3D 以编程方式分配 EventTrigger 处理程序

java - 从统一构建安卓游戏时出现问题

c# - Unity3D : Cannot change scripting backend to . 网络

javascript - 更改 select[multiple] 的行为,无需 CMD/CTRL 即可单击更改

javascript - 如果 div 隐藏或可见,则将类应用于元素

javascript - 如何仅替换方括号中的键重合?

c++ - 从 char(不是 char*)到 std::string 的首选转换

javascript - 在浏览器中存储 token