javascript - 通过JS解码UTF-8图像(字符串)

标签 javascript angularjs image utf-8 decode

我有一个基于 Angular (1.x) 的应用程序,它调用 Web API 来获取客户数据。客户对象的属性之一是他们的形象。当我收到对象时,图像数据是 UTF-8 编码的。

更清楚地说,基于 C# 的 API 正在执行以下操作:

customer.image = Encoding.UTF8.GetString(Image);

因此图像将被转换为 UTF-8 编码的字符串。

在客户端,我只是将 customer.image 数据绑定(bind)到

 <img ng-src="data:image/JPEG;base64,{{customer.image}}" ... >

这在我的应用程序的其他部分工作得很好,但其他图像没有首先被编码。就是这个。

我一直在寻找一种在 JS 中解码 UTF-8 编码字符串的方法,但我遇到的每个答案似乎都适用于decodeURIComponent() 的某些变体。这对我不起作用,因为有问题的字符串不是 URI。 (我收到无效 URI 错误)。

如何使用 JS、JQuery 或 Angular 解码这些数据?看起来应该很简单,但也许我只是使用了错误的术语......

最佳答案

UTF-8 只是一种字符编码,可以处理丹麦语等特殊字符:“æøå”。 UTF-8 的第一部分是 ASCII 字符,以确保与 ASCII 编码内容 ( https://en.wikipedia.org/wiki/UTF-8 ) 的兼容性。 Base64 编码是将二进制数据编码为 ASCII 文本 ( https://en.wikipedia.org/wiki/Base64 )。

这基本上意味着,如果您的 Base64 数据编码正确,那么无论是否采用 UTF 编码,它都将是相同的。因此,短期而言,您的问题不应该在于编码。

因此,为了解决您的问题,我会研究图像数据是否实际上正确编码为 Base64,很可能您赌的是二进制数据而不是预期的 Base64,在这种情况下,您想要的是对 Base64 进行编码数据。

顺便说一句,建议确保您使用的所有文本/字符串都是 UTF-8 编码的。确保您的 html、js 等文件是 UTF-8,确保数据库是 UTF-8,并确保您获得告诉编码的元 html 标签。将所有内容都设置为 UTF-8 将使您的生活变得更加轻松,尤其是在遇到特殊字符时。

关于javascript - 通过JS解码UTF-8图像(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38881245/

相关文章:

html - 制作 HTML 图片 "click-see-through"

javascript - 只读的 Ember 计算属性应该在 YUIdoc 中标记为 @property 还是 @method?

javascript - 如何解决此错误 : ENOENT: no such file or file or directory, open '/tmp/mt-1miyjxv/os.json' at error native?

javascript - Grails+Jquery-ui - 集成问题?

javascript - angularjs如何访问其范围之外的ng-repeat过滤值

javascript - 如何在AngularJS组件中设置观察者?

javascript - 替换 JavaScript 中的特殊字符

javascript - 如何将变量从 Controller 范围传递到工厂

ios - 无法绘制旋转图像

html - 图像 srcset 大小