我在将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/