You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Django-Python中实现文本转Hex再转Base64的正确方法

正确实现文本→Hex→Base64的Python/Django方案

你的原有代码逻辑错误在于,把输入字符串"ABC"直接当作十六进制值解析成整数,这和在线工具的转换逻辑完全不同。在线工具是将每个字符的ASCII编码转换为对应的十六进制字符,再拼接成Hex字符串,之后将该Hex字符串还原为字节再编码为Base64。

正确转换步骤与代码实现

import base64

def text_to_hex_to_base64(text: str) -> str:
    # 1. 文本转Hex编码:将字符串按UTF-8编码为字节,再转为十六进制字符串
    hex_str = text.encode('utf-8').hex()
    # 此时hex_str为"414243"(对应"ABC"的ASCII十六进制)
    
    # 2. Hex编码转Base64:将十六进制字符串转回字节,再进行Base64编码
    hex_bytes = bytes.fromhex(hex_str)
    base64_str = base64.b64encode(hex_bytes).decode('utf-8')
    
    return base64_str

# 测试
result = text_to_hex_to_base64("ABC")
print(result)  # 输出: QUJD

代码说明

  • text.encode('utf-8'):将字符串转为UTF-8编码的字节流,比如"ABC"转为b'ABC'
  • .hex():将字节流转换为十六进制字符串,b'ABC'转为"414243"
  • bytes.fromhex(hex_str):将十六进制字符串还原为原始字节流,"414243"转回b'ABC'
  • base64.b64encode(...).decode('utf-8'):对字节流进行Base64编码,并将结果转为字符串

在Django中,你可以直接将这个函数集成到视图或工具类中,比如在视图中处理用户输入:

from django.http import HttpResponse
import base64

def convert_view(request):
    if request.method == 'POST':
        input_text = request.POST.get('input_text', '')
        hex_str = input_text.encode('utf-8').hex()
        hex_bytes = bytes.fromhex(hex_str)
        base64_result = base64.b64encode(hex_bytes).decode('utf-8')
        return HttpResponse(f"Hex编码: {hex_str}<br>Base64编码: {base64_result}")
    return HttpResponse("<form method='post'><input name='input_text' type='text'><button type='submit'>转换</button></form>")

内容的提问来源于stack exchange,提问作者Emma William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:09:23