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

10-11 23:52