Texture2D to byte[] to String

Texture2D to byte[] to String

本文关键字:to String byte Texture2D      更新时间:2023-09-26

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

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

我只得到"�PNG"的log输出。为什么这么短?问号是什么?Unity不应该能够解释UTF-8字符吗?当我把它发送到我的NodeJS服务器时它显示为SyntaxError: Unexpected token并使服务器崩溃

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

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

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

您是否尝试过使用Default编码?

Debug.Log(System.Text.Encoding.Default.GetString(myTextureBytes));