javascript - 在javascript中将字符串编码为utf-16到base64

标签 javascript encoding base64 utf-16

我正在努力在此网上找到任何资源,这令人担忧。 我一直在阅读有关 UCS-2 和 UTF-16 问题的文章,但找不到解决方案。

我需要从输入中获取一个值:

var val = $('input').val()

并将其编码为 base64,将文本视为 utf-16,因此:

this is a test

变成:

dABoAGkAcwAgAGkAcwAgAGEAIAB0AGUAcwB0AA==

而不是下面的,您将其视为 UTF-8:

dGhpcyBpcyBhIHRlc3Q=

最佳答案

一旦读入 JavaScript,您的数据将采用无编码数字格式(严格来说,它必须采用 Unicode Normalized Form C,但 Unicode 只是 Unicode 词典中每个字形的一系列标识号。它是无编码)。所以:如果您特别需要将数据编码为 UTF-16 字节序列,请这样做,然后使用 base64 对其进行编码。

但这是有趣的部分:您需要哪种 UTF-16?小端还是大端?有或没有 BOM? UTF-16 是一种非常不方便的编码格式(我们甚至不打算接触 UCS-2。它已经过时了。已经存在很长时间了)。

您真正需要的是从您的 HTML 元素中获取文本值,对其值进行 Base64 编码,然后将接收的任何数据解压缩为 UTF8;不要试图让 JavaScript 做比它必须做的更多的工作。我假设您正在将这些数据发送到服务器或其他东西,在这种情况下:您的服务器语言比 JavaScript 更复杂,并且由于内置函数可以用大约一百万种不同的编码解压文本。所以就用那个。 Don't solve Y for X .

关于javascript - 在javascript中将字符串编码为utf-16到base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633106/

相关文章:

r - 将原始向量转换为 R 对象

javascript - JQuery、CSS 和悬停标签重新编码

使用 openlayer 和 geocodezip 示例进行鼠标位置显示和地理定位的 javascript sode

objective-c - 与@encode相反

mysql - 中文名称和 Unicode 基本多语言平面 (BMP)

javascript - 部署到Heroku node-gyp无法安装base64@2.1.0,node-gyp重建失败

javascript - 我怎样才能创建这样的表格?

javascript - Vue js 和收藏/喜欢按钮

java - PHP 和 Java 编码问题

java - 如何逐页获取具有整个文件内容的base64的PDF文件内容?