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