将javascript字符串字节编码为base64 [关闭]

问题描述 投票:0回答:1

我在c#中有一个代码

public static string Encriptar(string _cadenaAencriptar) { string result = string.Empty; byte[] encodedData = System.Text.Encoding.Unicode.GetBytes(_cadenaAencriptar); result = Convert.ToBase64String(encodedData ); return result; }

我想要在JavaScript中使用此代码。请帮助我。

javascript c# unicode decode encode
1个回答
0
投票
因此,您正在获取utf16编码的字符串,并将utf16字节转换为Base64编码的字符串。

以下JavaScript首先将字符串转换为utf16字节数组。然后将数组转换为Base64编码的字符串。

_arrayBufferToBase64(strToUtf16Bytes(_cadenaAencriptar))

https://stackoverflow.com/a/9458996/361714

function _arrayBufferToBase64( buffer ) { var binary = ''; var bytes = new Uint8Array( buffer ); var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode( bytes[ i ] ); } return window.btoa( binary ); }

https://stackoverflow.com/a/51904484/361714

function strToUtf16Bytes(str) { const bytes = []; for (ii = 0; ii < str.length; ii++) { const code = str.charCodeAt(ii); // x00-xFFFF bytes.push(code & 255, code >> 8); // low, high } return bytes; }

javascript的输出:

_arrayBufferToBase64(strToUtf16Bytes("hi")) "aABpAA=="

与C#的输出匹配。
© www.soinside.com 2019 - 2024. All rights reserved.