首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修复python中的编码

修复python中的编码
EN

Stack Overflow用户
提问于 2020-06-05 23:25:00
回答 1查看 54关注 0票数 0

我将一个json从php发送到python,土耳其字符串存在编码/解码问题。这是php中的一个示例字符串:

Güvenlik ama larına giriş

我使用这一行代码来执行python:

代码语言:javascript
复制
$output = shell_exec("python receive_data.py " . base64_encode(json_encode($data, JSON_UNESCAPED_UNICODE)) . " 2>&1");

我在python中打印数据如下:

代码语言:javascript
复制
print(base64.b64decode(sys.argv[1]))

这就是它的样子:

Gxc3\xbcvenlik\xc3\xa7lar\xc4\xb1na giri\xc5\x9f

我对编码/解码不太了解。我确保php端完全是utf-8,而windows也使用utf-8。在PyCharm上将项目编码更改为utf-8。

编辑:

从php完成数据数组:

代码语言:javascript
复制
array (size=15)
  0 => 
    array (size=2)
      'tr' => string 'Güvenlik amaçlarına giriş' (length=29)
      'en' => string 'Introduction to Security Goals.' (length=31)
  1 => 
    array (size=2)
      'tr' => string 'Kriptografinin Matematiği.' (length=27)
      'en' => string 'Mathematics of Cryptography.' (length=28)
  2 => 
    array (size=2)
      'tr' => string 'Geleneksel Simetrik Anahtarlı Şifreler.' (length=41)
      'en' => string 'Traditional Symmetric Key Ciphers.' (length=34)
  3 => 
    array (size=2)
      'tr' => string 'Cebirsel Yapılar.' (length=18)
      'en' => string 'Algebraic Structures.' (length=21)
  4 => 
    array (size=2)
      'tr' => string 'Modern Simetrik Anahtarlı Şifrelere Giriş.' (length=45)
      'en' => string 'Introduction to Modern Symmetric Key Ciphers.' (length=45)
  5 => 
    array (size=2)
      'tr' => string 'Gelişmiş Şifreleme Standardı.' (length=33)
      'en' => string 'Advanced Encryption Standard.' (length=29)
  6 => 
    array (size=2)
      'tr' => string 'Modern Simetrik Anahtarlı Şifrelerle Şifreleme.' (length=50)
      'en' => string 'Encipherment Using Modern Symmetric-Key Ciphers.' (length=48)
  7 => 
    array (size=2)
      'tr' => string 'Stream Ciphers' (length=14)
      'en' => string 'Akan Şifreleme Yöntemleri.' (length=28)
  8 => 
    array (size=2)
      'tr' => string 'Ara Sınav' (length=10)
      'en' => string 'Midterm Exam' (length=12)
  9 => 
    array (size=2)
      'tr' => string 'Doğrusal ve Diferansiyel Kriptanaliz.' (length=38)
      'en' => string 'Linear and DifferentialCryptanalysis.' (length=37)
  10 => 
    array (size=2)
      'tr' => string 'Kriptografik Özet Fonsiyonları.' (length=33)
      'en' => string 'Cryptographic Hash Functions.' (length=29)
  11 => 
    array (size=2)
      'tr' => string 'Asimetrik Kriptoloji' (length=20)
      'en' => string 'Asymmetric Cryptography' (length=23)
  12 => 
    array (size=2)
      'tr' => string 'Protokollar, Tcp/Ip Protokol ve Hizmetlerinde Güvenlik' (length=55)
      'en' => string 'Protocols, Security in Tcp/Ip Networks' (length=38)
  13 => 
    array (size=2)
      'tr' => string 'Güvenlik Duvarları ve Sanal Özel Ağlar' (length=42)
      'en' => string 'Firewall and Virtual Private Networking' (length=39)
  14 => 
    array (size=2)
      'tr' => string 'Saldırı Tespit Sistemleri' (length=27)
      'en' => string 'Intrusion Detection Systems' (length=27)
EN

回答 1

Stack Overflow用户

发布于 2020-06-05 23:40:27

base64.b64decode() 返回字节.

解码这些字节将为您提供原始字符串:

代码语言:javascript
复制
import base64

b64 = base64.b64encode('Güvenlik amaçlarına giriş'.encode('utf8'))
print(b64)
# b'R8O8dmVubGlrIGFtYcOnbGFyxLFuYSBnaXJpxZ8

b = base64.b64decode(b64)
print(b)
# b'G\xc3\xbcvenlik ama\xc3\xa7lar\xc4\xb1na giri\xc5\x9f'

s = b.decode('utf8')
print(s)
# Güvenlik amaçlarına giriş
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62225486

复制
相关文章

相似问题

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