我将一个json从php发送到python,土耳其字符串存在编码/解码问题。这是php中的一个示例字符串:
Güvenlik ama larına giriş
我使用这一行代码来执行python:
$output = shell_exec("python receive_data.py " . base64_encode(json_encode($data, JSON_UNESCAPED_UNICODE)) . " 2>&1");我在python中打印数据如下:
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完成数据数组:
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)发布于 2020-06-05 23:40:27
base64.b64decode() 返回字节.
解码这些字节将为您提供原始字符串:
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şhttps://stackoverflow.com/questions/62225486
复制相似问题