首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从文件中读取二进制字符串并保存为十六进制

从文件中读取二进制字符串并保存为十六进制
EN

Stack Overflow用户
提问于 2018-04-02 04:37:04
回答 2查看 2.9K关注 0票数 0

我有一个包含如下代码行的文件:\x8b\xe2=V\xa2\x050\x10\x1f\x11lvCh\x80\xf8z\xf8%\tHKE\xf2\xc8\x92\x12\x83\xe8R\xd3\xc8我需要将此字符串转换为十六进制代码:0x8be23d56a20530101f116c76436880f87af82509484b45f2c8921283e852d3c8

我尝试过在python和nodejs中这样做。但如果我在控制台模式下这样做-一切正常,如果我从文件读取,我会有错误的结果,因为从文件读取作为引号字符串。

EN

回答 2

Stack Overflow用户

发布于 2018-04-02 13:43:31

您在控制台应用程序中使用的字符串,当您将其转换为Buffer时,"\“字符不会计入。请使用双反斜杠。从文件中读取数据时没有问题。

对于NodeJs,将字符串转换为buffer,并将该缓冲区转换为十六进制值。

代码语言:javascript
代码运行次数:0
运行
复制
fs = require('fs')
fs.readFile('notes.txt', 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  const buf = Buffer.from(data, 'ascii');
  //converting string into buffer
  var hexvalue = buf.toString('hex');
  //with buffer, convert it into hex
  console.log(hexvalue);
});

对于python,您可以尝试这样做。

代码语言:javascript
代码运行次数:0
运行
复制
file = open("notes.txt","r")
str = file.readline()
str = str.encode('utf-8')
print (str.hex())
票数 2
EN

Stack Overflow用户

发布于 2018-04-02 06:01:29

对于python:

代码语言:javascript
代码运行次数:0
运行
复制
import binascii
f = open('path/to/file', 'rb').read()
hex_encoded = binascii.hexlify(f).decode('utf-8')
print(hex_encoded) #Prints hex stream as string

希望能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49602394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档