Rumah > Soal Jawab > teks badan
PHPz2017-04-18 10:11:45
Kerana ia bukan lagi data rentetan UTF-8, sayang. Anda menyulitkannya. DES menjana data binari yang tidak boleh dibaca Jika anda memaksa String baharu untuk ditafsirkan mengikut pengekodan UTF-8, sudah tentu ia akan kacau jika ia boleh dibaca secara langsung, apa gunanya menyulitkannya?
Oleh kerana kebanyakan data yang disulitkan berdasarkan algoritma matematik menjana blok binari atau data strim. Hanya selepas penyahsulitan teks asal boleh dibaca.
Jika anda mahu data yang disulitkan disimpan sebagai teks atau penghantaran HTTP, anda boleh mengekod data dengan BASE64 Selepas pengekodan, ia akan menjadi rentetan ASCII tanpa aksara yang kacau (sudah tentu manusia masih tidak dapat memahaminya). .
ringa_lee2017-04-18 10:11:45
Selepas penyulitan, ia ialah tatasusunan bait Tidak semua tatasusunan bait boleh ditukar kepada rentetan melalui String() baharu
高洛峰2017-04-18 10:11:45
Ini mungkin kerana anda tidak memahami perbezaan antara aliran data bait memori dan rentetan
Jika anda telah menggunakan editor teks untuk melihat data dalam paparan perenambelasan, maka anda tidak akan mempunyai soalan ini.
String Mengapa rentetan boleh dipaparkan adalah kerana data memori mematuhi peraturan pengekodan tertentu, seperti pengekodan UTF-8
Tetapi secara amnya data yang disulitkan ialah aliran data memori yang lengkap, yang tidak mematuhi peraturan pengekodan rentetan aksara, jadi apabila. anda secara paksa menggunakan peraturan pengekodan rentetan untuk menghuraikannya, ia akan menjadi "kod bercelaru".
Ini hanyalah watak-watak yang bercelaru
PHP中文网2017-04-18 10:11:45
Selepas penyulitan, ia biasanya tatasusunan bait, yang boleh ditukar menjadi rentetan perenambelasan