我很难在网上找到任何资源,这是令人担忧的。 我一直在阅读有关UCS-2和UTF-16问题的文章,但我找不到解决方案。
我需要从输入中获取值:
var val = $('input').val()
并将其编码为base64,将文本视为utf-16,所以:
this is a test
变为:
dABoAGkAcwAgAGkAcwAgAGEAIAB0AGUAcwB0AA==
而不是以下,你将其视为UTF-8:
dGhpcyBpcyBhIHRlc3Q=
答案 0 :(得分:1)
您的数据,一旦读成JavaScript,将是一个encodingless数字格式(严格来说,它必须是Unicode标准形C,而Unicode是仅仅是一系列用于为在Unicode的词汇每一个字形的数字。这是编码以下)。所以:如果您特别需要编码为UTF-16字节序列的数据,请执行此操作,然后对其进行base64编码。
但这是有趣的部分:你需要哪种UTF-16?小端还是大端?有无BOM? UTF-16是一种非常不方便的编码格式(我们甚至都不会触及UCS-2。它已经过时了。已经很久了。)
你真正需要的是从HTML元素中获取文本值,Base64对其值进行编码,然后将接收的数据解压缩为UTF8;不要试图让JavaScript做更多的工作。我认为你将这些数据发送到服务器或其他东西,在这种情况下:你的服务器语言比JavaScript更复杂,并且可以通过内置函数解压缩大约一百万种不同编码的文本。所以就这样使用它。 Don't solve Y for X