Mar*_*arc 1 javascript c# binary utf-8 node.js
我想尝试 UTF-8 和 Unicode,为此我想建立一个小型网站来帮助我更好地理解编码。
\n\n首先,我希望能够输入一些文本,然后获取字符串的实际二进制编码。为此,我正在从 C# 或 Java 中寻找与“.GetBytes”等效的内容。我不想要已解析的字符代码!
\n\n这是我想在 JavaScript 中重现的 C# 函数
\n\nstring ToBinary(string input)\n{\n //this is the part I am looking for in JavaScript\n var utf8Bytes = Encoding.UTF8.GetBytes(input);\n\n var bytesFormatedToBin = utf8Bytes.Select(b => Convert.ToString(b, 2).PadLeft(8, \'0\'));\n return string.Join(\' \', bytesFormatedToBin);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这里是一些示例结果:
\n\n有没有办法在 JavaScript 中实现这一点?
\n\n谢谢。\n马克
\n\n编辑:修复了截断的示例结果。
\nString.prototype.charCodeAt(...)仅当字符串仅包含 ASCII 字符时才能正常工作。你必须使用标准TextEncoder如果你想处理其他字符,
const te = new TextEncoder(\'utf-8\')\nfunction toBinaryRepr(str) {\n return Array.from(te.encode(str))\n .map(i => i\n .toString(2)\n .padStart(8, \'0\'))\n .join(\' \')\n}\n// \'01100001 01100010 01100011\'\ntoBinaryRepr(\'abc\')\n// \'01000000 11000010 10101001 11000010 10101110\'\ntoBinaryRepr(\'@\xc2\xa9\xc2\xae\')\n// \'11110000 10011111 10011000 10000000 11110000 10011111 10011000 10000100\'\ntoBinaryRepr(\'\')\nRun Code Online (Sandbox Code Playgroud)\n\n警告:TextEncoder在旧版本的 Node.js 中不是全局构造函数 - 如果您收到一些错误消息TextEncoder未定义,请尝试通过以下方式导入它:
const { TextEncoder } = require(\'util\')\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1128 次 |
| 最近记录: |