我正在努力在此网上找到任何资源,这令人担忧。 我一直在阅读有关 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/