JavaScript 中的二进制到字符串

2024-01-03

我创建了一个 JavaScript 程序来将字符串转换为二进制。

Input: StackOverflow
Output: 1010011 1110100 1100001 1100011 1101011 
1001111 1110110 1100101 1110010 1100110 
1101100 1101111 1110111 

现在我想将该二进制文件转换回如下所示的字符串。有没有可能的方法来做到这一点?

Input: 1010011 1110100 1100001 1100011 1101011 
1001111 1110110 1100101 1110010 1100110 
1101100 1101111 1110111 

Output StackOverflow

Thanks


Use String.fromCharCode() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode and parseInt( , 2) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt像这样:

const binary = `1010011 1110100 1100001 1100011 1101011 
1001111 1110110 1100101 1110010 1100110 
1101100 1101111 1110111`;

const outputStr = binary
  // split string into an array of base 2 (binary) UTF-16 chars
  .split(' ')
  // map every binary char to a UTF-16 number of base 10
  // and then get the string representation of that UTF-16 number
  .map(bin => String.fromCharCode(parseInt(bin, 2)))
  // join the array back to a single string
  .join('');

console.log(outputStr);
  • String.fromCharCode(number)将从 UTF-16 字符代码返回一个字符串
  • parseInt(binary , 2)将变换基数 2number字符串转换为以 10 为基数的数字

Edit:

As the String.fromCharCode()函数接受多个字符作为参数,您也可以使用扩展运算符 (...) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax像这样:

const binary = `1010011 1110100 1100001 1100011 1101011 
1001111 1110110 1100101 1110010 1100110 
1101100 1101111 1110111`;

const outputStr = String.fromCharCode(
  ...binary.split(' ').map(bin => parseInt(bin, 2))
)

console.log(outputStr);

Edit 2:

随着时间的推移,这个答案会获得更多的流量,我还将添加解决方案,以相反的方式进行操作......以防万一:

const str = `StackOverflow`;

const outputStr = str.split('') // split in single chars
  .map(c => c.charCodeAt(0) // get the UTF-16 code (10 base)
             .toString(2)) // transform it back to a string (2 base)
  .join(' ') // make single string from array

console.log(outputStr);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中的二进制到字符串 的相关文章

随机推荐

  • 如何在 Swift iOS 应用程序中添加 Google Drive API?

    我有一个用 Swift 编写的应用程序 它已经使用了 SwiftyDropbox API 我用 cocoapods 安装了 SwiftyDropbox use frameworks 关键词 现在 当我添加这个 pod 时 Google AP
  • 在 WooCommerce 3+ 中向订单添加自定义字段

    在 WooCommerce 中 我想添加一个新的自定义字段来订单详细信息 现在我可以使用下面的代码创建一个新的自定义字段 referenceNumber 并在其中添加 ordercreated 值 update post meta orde
  • SpriteKit场景切换时的内存问题

    Ok so awhile back in testing I had a random crash with no error and I have no clue why So i went into analyze things and
  • npm 如何/为什么建议不要以 root 身份运行?

    简而言之 首先 为什么npm http npmjs org 建议它只能以非 root 身份运行 我非常不相信其他所有包管理器 apt yum gem pacman 要求 sudo 是错误的 其次 当我遵循他们的建议 并运行npm insta
  • :this 在 Ruby on Rails 中意味着什么?

    我是 Ruby 和 Ruby on Rails 世界的新手 我已经阅读了一些指南 但我在使用以下语法时遇到了一些问题 我认为使用 conditionRuby 中使用语法来定义具有某种访问器的类属性 例如 class Sample attr
  • 将 Flutter 小部件定位到屏幕外

    正如标题所提到的 我试图将我的小部件放置在屏幕之外 目前我已经设法将小部件图像偏移到屏幕之外 但这不是我期望的结果 屏幕外的图像在状态栏上仍然可见 这就是它的样子 这就是我期望的样子 用 adobe XD 设计 Widget build B
  • Rails 3 的 A/B 框架?

    有没有像 ABingo 或 Vanity 这样的东西可以在 Rails 3 中运行 我知道有 Google 网站优化器和可视化网站优化器 但我需要更多的功能来确定显示的内容以及跟踪的内容 而这些功能超出了它们的能力 如果没有 我什至会考虑相
  • 为什么简单的 Dockerfile 给出“权限被拒绝”?

    我正在学习将 Docker 与 ROS 结合使用 我对以下错误消息感到惊讶 FROM ros kinetic robot xenial create non root user ENV USERNAME ros RUN adduser in
  • 如何在 Entity Framework Core 中调用带有多个表联接的存储过程?

    我必须调用一个从多个表中选择记录的存储过程 我已尝试以下代码 但它为实体类以外的其他表中的列返回 null private async Task
  • 子+父参考SQL

    我正在尝试编写一个查询来显示项目的名称和父项目的名称 但到目前为止还没有提供正确的方法 CREATE TABLE project p id NUMBER 6 project name VARCHAR2 30 client id NUMBER
  • 如何使用div代替表格

    我正在尝试创建以下表格布局 但我想使用 DIV 而不是 TABLE CELL1 CELL2 CELL3 我希望所有单元格的高度由其内容设置 即没有高度 样式 我尝试过在 cell1 上使用 float left 但似乎无法让单元格 2 和
  • Mac OS X Java 更新的源代码[重复]

    这个问题在这里已经有答案了 Java for Mac OS X 10 6 Update 3 升级到 java 1 6 0 22 但是 它们不包含源代码或 JavaDoc 有谁知道苹果是否提供了源代码 如果是 在哪里可以找到它 我想将源代码附
  • 增加值并将其设置为 onClick 事件的 var

    我面临着一个非常奇怪的问题 导致感觉就像 无论你如何 首先这是代码 renderImages gt let i 0 const arr https truffle assets imgix net pxqrocxwsjcc 6OcJeUMa
  • MySQL If Date 语句?

    有没有办法通过 mysql 查询返回 true 或 false 我有一张桌子 id start 4 2012 03 01 00 00 00 8 2012 01 20 00 00 00 我也想回来TRUE如果当前日期大于开始日期并且FALSE
  • 有没有办法允许用户提交 html 内容,同时仍然启用模型验证?

    我需要允许用户在其文本输入中提交包含 html 的表单值 这是一个面向内部的应用程序 因此这样做相当安全 我已经成功地使用了 ValidateInput false 有关方法的属性 但这会抑制all对相关方法 视图模型进行模型验证 但我只想
  • 如何像 jsfiddle.net 中那样调整多个相邻文本区域的大小?

    如何像jsfiddle net网站那样通过在区域1 2和3上拖动鼠标来调整textarea的大小 我的代码是 HTML div fieldset div class window top A div div class handler ho
  • 正则表达式仅匹配字符串以目标结尾的情况

    我需要一个正则表达式 它仅与以我要查找的目标结尾的字符串匹配 我需要找到具有特定扩展名的文件 问题是该扩展名也出现在其他文件中 例如我有两个文件名为 B82177 2014 07 08T141507758Z ccf and B82177 2
  • iPhone SDK WebRTC 集成错误

    安装时WebRTC我的 iOS 项目出现以下错误 Undefined symbols for architecture i386 OBJC CLASS RTCICECandidate referenced from objc class r
  • 没有 if-else 语句的一维卷积(非 FFT)?

    我编写了一个简单的串行一维卷积函数 如下 我也在尝试 GPU 卷积实现 这主要是出于我自己的好奇心 我正在尝试了解各种非 FFT 实现策略之间的性能权衡 避免分支对于我的 GPU 卷积实验非常重要 因为分支在 Nvidia GPU 上的成本
  • JavaScript 中的二进制到字符串

    我创建了一个 JavaScript 程序来将字符串转换为二进制 Input StackOverflow Output 1010011 1110100 1100001 1100011 1101011 1001111 1110110 11001