使用json数据运行python脚本的Php代码:
$output = shell_exec("python php_test.py " . base64_encode(json_encode($process_data)) . " 2>&1");用于解码json的Python代码:
jdata = json.loads(base64.b64decode(sys.argv[1]))这就是$process_data的样子:
array (size=15)
0 =>
array (size=1)
'konu' => string '{"tr":"Güvenlik amaçlarına giriş", "en":"Introduction to Security Goals."}' (length=78)
1 =>
array (size=1)
'konu' => string '{"tr":"Kriptografinin Matematiği.", "en":"Mathematics of Cryptography."}' (length=73)
2 =>
array (size=1)
'konu' => string '{"tr":"Geleneksel Simetrik Anahtarlı Şifreler.", "en":"Traditional Symmetric Key Ciphers."}' (length=93)
3 =>
array (size=1)
'konu' => string '{"tr":"Cebirsel Yapılar.", "en":"Algebraic Structures."}' (length=57)
4 =>
array (size=1)
'konu' => string '{"tr":"Modern Simetrik Anahtarlı Şifrelere Giriş.", "en":"Introduction to Modern Symmetric Key Ciphers."}' (length=108)
5 =>
array (size=1)
'konu' => string '{"tr":"Gelişmiş Şifreleme Standardı.", "en":"Advanced Encryption Standard."}' (length=80)
6 =>
array (size=1)
'konu' => string '{"tr":"Modern Simetrik Anahtarlı Şifrelerle Şifreleme.", "en":"Encipherment Using Modern Symmetric-Key Ciphers."}' (length=116)
7 =>
array (size=1)
'konu' => string '{"tr":"Stream Ciphers", "en":"Akan Şifreleme Yöntemleri."}' (length=60)
8 =>
array (size=1)
'konu' => string '{"tr":"Ara Sınav", "en":"Midterm Exam"}' (length=40)
9 =>
array (size=1)
'konu' => string '{"tr":"Doğrusal ve Diferansiyel Kriptanaliz.", "en":"Linear and DifferentialCryptanalysis."}' (length=93)
10 =>
array (size=1)
'konu' => string '{"tr":"Kriptografik Özet Fonsiyonları.", "en":"Cryptographic Hash Functions."}' (length=80)
11 =>
array (size=1)
'konu' => string '{"tr":"Asimetrik Kriptoloji", "en":"Asymmetric Cryptography"}' (length=61)
12 =>
array (size=1)
'konu' => string '{"tr":"Protokollar, Tcp/Ip Protokol ve Hizmetlerinde Güvenlik", "en":"Protocols, Security in Tcp/Ip Networks"}' (length=111)
13 =>
array (size=1)
'konu' => string '{"tr":"Güvenlik Duvarları ve Sanal Özel Ağlar", "en":"Firewall and Virtual Private Networking"}' (length=99)
14 =>
array (size=1)
'konu' => string '{"tr":"Saldırı Tespit Sistemleri", "en":"Intrusion Detection Systems"}' (length=72)我收到一个解码器错误:
UnicodeEncodeError:“charmap”编解码器无法在33位置编码字符“\u0131”:字符映射到< undefined>
当我移除base64_encode时,我会得到“期望”、“分隔符”错误。
我猜是双引号造成的。我怎么才能逃过他们?
发布于 2020-06-02 21:13:58
在python方面,这似乎是一个编码问题,可能是因为PHP脚本与您在python中设置的代码不同。
似乎python中的json编码器/解码器需要使用UTF-8、UTF-16或UTF-32来表示JSON,推荐使用UTF-8作为最大互操作性的缺省值。你能确认PHP上的所有东西都是UTF-8吗?
以下是源代码:https://docs.python.org/3/library/json.html#character-encodings
发布于 2020-06-02 21:33:21
输入以下命令,将MS windows控制台的字符编码更改为utf-8
chcp 65001
现在再运行你的脚本。
https://stackoverflow.com/questions/62160501
复制相似问题