Javascript 如何将字符串转换为它';真正的二进制表示法(UTF-8或当前使用的任何形式)?
我想尝试UTF-8和Unicode,为此我想建立一个小网站,帮助我更好地理解编码 首先,我希望能够输入一些文本,然后获得字符串的实际二进制编码。为此,我正在从C#或Java中搜索一个与“.GetBytes”等价的文件。我不想要解析的字符码 这里有一个C#函数,我想用JavaScript重现Javascript 如何将字符串转换为它';真正的二进制表示法(UTF-8或当前使用的任何形式)?,javascript,c#,node.js,utf-8,binary,Javascript,C#,Node.js,Utf 8,Binary,我想尝试UTF-8和Unicode,为此我想建立一个小网站,帮助我更好地理解编码 首先,我希望能够输入一些文本,然后获得字符串的实际二进制编码。为此,我正在从C#或Java中搜索一个与“.GetBytes”等价的文件。我不想要解析的字符码 这里有一个C#函数,我想用JavaScript重现 string ToBinary(string input) { //this is the part I am looking for in JavaScript var utf8Bytes
string ToBinary(string input)
{
//this is the part I am looking for in JavaScript
var utf8Bytes = Encoding.UTF8.GetBytes(input);
var bytesFormatedToBin = utf8Bytes.Select(b => Convert.ToString(b, 2).PadLeft(8, '0'));
return string.Join(' ', bytesFormatedToBin);
}
以下是一些示例结果:
- “abc”=>“01100001 01100010 01100011”
- “@™”=>“01000000110000101001001 11000010 10101110”
- “
仅当字符串仅包含ASCII字符时才能正常工作。如果要处理其他字符,必须使用标准的String.prototype.charCodeAt(…)
:textcoder
const te=新的文本编码器('utf-8') 函数toBinaryRepr(str){ 返回数组.from(te.encode(str)) .map(i=>i .toString(2) .padStart(8,'0')) .加入(“”) } // '01100001 01100010 01100011' toBinaryRepr(“abc”) // '01000000 11000010 10101001 11000010 10101110' toBinaryRepr(“@©®”) // '11110000 10011111 10011000 10000000 11110000 10011111 10011000 10000100'
toBinaryRepr('
诸如此类,如果我没有遗漏某些内容,您只需要处理前导零。不过,表情可能需要进一步的工作。如果您计算“®”。charCodeAt(0);您将得到174。174是此字符的Unicode编号,但如果UTF-8编码,它不是内存中的实际值。在UTF-8中,此字符占用两个字节“11000010”和“10101110”。这是我想要得到的。谢谢,TextEncoder正是我要找的:-)警告是一个很好的信息。我已经对关键字很满意了。”TextEncoder“通过它,我找到了API文档,现在一扇通向新世界的门在我面前打开了;-)“abc”).split('').map(i=>i.charCodeAt(0).toString(2).padStart(8,'0')).join('');