Rumah pembangunan bahagian belakang masalah PHP php ajax中文乱码怎么解决?

php ajax中文乱码怎么解决?

Nov 06, 2020 am 10:54 AM
ajax php aksara Cina yang kacau

解决方法:1、所有数据统一使用utf-8编码,包括从数据库编码,php编码和前端编码;2、使用json_encode()、urlencode()对每个字符分别编码,然后使用urldecode()函数进行解码,再返回值即可。

php ajax中文乱码怎么解决?

推荐:《PHP视频教程

在php中,从数据库提取数据之后,一般我们会一次提取多行数据,如果前端的js使用的是ajax与后端交互的话,php只能echo一个数据,但是我们的数据有多个,所以只能一个数组过去,这就使用到了json_encode()函数,json_encode()函数的意思是把数据转化成json数据。

我们看一下如何转换,

php数组:

首先我们在php里新建两个数组,一个包含中文,另一个包含数字或英文,最后输出看一下。 主意:关联数值更直观一点

$gg=array('a'=>'中国','b'=>'日本','c'=>'美国','d'=>'加拿大','e'=>'法国');
$yy=array('f'=>'6','g'=>'7','h'>='8','i'=>'tom','j'=>'kevin');

只输出其中一个数组:

echo $json=json_encode($gg);

输出结果如下

{"a":"\u4e2d\u56fd","b":"\u65e5\u672c","c":"\u7f8e\u56fd","d":"\u52a0\u62ff\u5927","e":"\u6cd5\u56fd"}

两边分别是大括号,而且乱码

把两个数组同时放在一个数组同时输出

echo $json=json_encode(array($gg,$yy));

输出结果如下:

[{"a":"\u4e2d\u56fd","b":"\u65e5\u672c","c":"\u7f8e\u56fd","d":"\u52a0\u62ff\u5927","e":"\u6cd5\u56fd"},{"f":"6","g":"7","0":true,"i":"tom","j":"kevin"}]

我们可以看到,数组里的数组经过json格式之后,数据装在【】中括号里,里面的数组又分别在{}大括号里,但是还是乱码。

针对乱码问题,有两个方法,

方法一:所有数据统一使用utf-8编码,包括从数据库编码,php编码和前端编码。

方法二:使用下面几个函数,对每个字符分别编码:(有的符号貌似转义不成功,不提倡使用该方法)

function JSON($array) { 
    arrayRecursive($array, 'urlencode', true); 
    $json = json_encode($array); 
    return urldecode($json); 
}

	function arrayRecursive(&$array, $function, $apply_to_keys_also = false){ 
    static $recursive_counter = 0; 
    if (++$recursive_counter > 1000) { 
        die('possible deep recursion attack'); 
    } 
    foreach ($array as $key => $value) { 
        if (is_array($value)) { 
            arrayRecursive($array[$key], $function, $apply_to_keys_also); 
        } else { 
            $array[$key] = $function($value); 
        }                                        
        if ($apply_to_keys_also && is_string($key)) { 
            $new_key = $function($key); 
            if ($new_key != $key) { 
                $array[$new_key] = $array[$key]; 
                unset($array[$key]); 
            } 
        } 
    } 
    $recursive_counter--; 
}

使用这两个函数之后,输出结果为:

[{"a":"中国","b":"日本","c":"美国","d":"加拿大","e":"法国"},{"f":"6","g":"7","0":"1","i":"tom","j":"kevin"}]

更多编程相关知识,请访问:编程入门!!

Atas ialah kandungan terperinci php ajax中文乱码怎么解决?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana Melaksanakan Corak Singleton di PHP? Bagaimana Melaksanakan Corak Singleton di PHP? Sep 25, 2025 am 12:27 AM

Corak Singleton memastikan bahawa kelas hanya mempunyai satu contoh dan menyediakan titik akses global untuk senario di mana objek tunggal menyelaraskan operasi sistem, seperti sambungan pangkalan data atau pengurusan konfigurasi. 2. Struktur asasnya termasuk: contoh penyimpanan atribut statik peribadi, pembina swasta menghalang penciptaan luaran, kaedah pengklonan peribadi menghalang penyalinan, dan kaedah statik awam (seperti getInstance ()) untuk mendapatkan contoh. 3. Dapatkan contoh yang unik dalam PHP dengan memanggil kaedah GetInstance (), dan mengembalikan rujukan objek yang sama tidak kira berapa kali ia dipanggil. 4. Di bawah model permintaan PHP standard, keselamatan benang tidak perlu dipertimbangkan, tetapi isu-isu penyegerakan perlu diberi perhatian dalam persekitaran jangka panjang atau multi-threaded, dan PHP sendiri tidak menyokong mekanisme kunci asli. 5. Walaupun singleton berguna,

Bagaimana cara menggunakan pengendali coalescing null (??) dalam php? Bagaimana cara menggunakan pengendali coalescing null (??) dalam php? Sep 25, 2025 am 01:28 AM

Jawapan: Pengendali gabungan kosong PHP (??) digunakan untuk memeriksa sama ada kekunci pembolehubah atau array wujud dan tidak batal. Jika benar, ia mengembalikan nilainya, jika tidak, ia mengembalikan nilai lalai. Ia mengelakkan penggunaan pemeriksaan isset panjang (), sesuai untuk mengendalikan pembolehubah yang tidak ditentukan dan kekunci array, seperti $ pengguna pengguna = $ userInput?

Bagaimana untuk memuat turun fail dari URL di PHP? Bagaimana untuk memuat turun fail dari URL di PHP? Sep 24, 2025 am 05:45 AM

Jawapan: Gunakan file_get_contents dan curl untuk memuat turun fail URL, bekasnya mudah tetapi terhad, manakala yang terakhir lebih fleksibel dan menyokong streaming. Contohnya termasuk membaca dan menulis fail secara langsung, pilihan penetapan permulaan curl dan penjimatan, menambah pengendalian ralat dan pemeriksaan status HTTP. Fail besar disyorkan untuk mengalir muat turun di blok untuk menjimatkan ingatan, memastikan direktori itu boleh ditulis dan mengendalikan pengecualian dengan betul.

Bagaimana untuk melaksanakan antara muka dalam kelas PHP? Bagaimana untuk melaksanakan antara muka dalam kelas PHP? Sep 25, 2025 am 05:34 AM

Gunakan kata kunci untuk melaksanakan antara muka, dan kelas mesti menyediakan pelaksanaan khusus semua kaedah dalam antara muka. 2. Tentukan antara muka untuk mengisytiharkan kaedah menggunakan kata kunci antara muka. 3. Kelas melaksanakan antara muka dan mengatasi kaedah. 4. Buat objek dan panggil kaedah untuk mengeluarkan hasilnya. 5. Kelas boleh melaksanakan pelbagai antara muka untuk memastikan spesifikasi dan pemeliharaan kod.

Bagaimana untuk membersihkan input pengguna untuk mengelakkan XSS dalam PHP? Bagaimana untuk membersihkan input pengguna untuk mengelakkan XSS dalam PHP? Sep 25, 2025 am 05:19 AM

TopreventXsSinphp, SanitizeUserInputandescapeOutputBasedOnContextusingHtmlSpecialChars () forhtml, json_encode () forjavascript, dan validatestrictLyWithFilter_var () forexpectedDatatypes, sementara yangDeAvoidingDeprecatedFunctionsandingingContent-Security-Policyheadersfo

Bagaimana cara menggunakan kaedah Get dan Post dalam bentuk HTML dengan PHP? Bagaimana cara menggunakan kaedah Get dan Post dalam bentuk HTML dengan PHP? Sep 25, 2025 am 03:46 AM

Kaedah GET melampirkan data ke URL, yang sesuai untuk maklumat yang tidak sensitif; Kaedah pos menghantar data melalui badan permintaan, yang lebih selamat dan sesuai untuk maklumat sensitif.

MBTI Ujian Laman Web Percuma Masuk_ MBTI Ujian Keperibadian Alamat Pautan Percuma MBTI Ujian Laman Web Percuma Masuk_ MBTI Ujian Keperibadian Alamat Pautan Percuma Sep 24, 2025 pm 05:00 PM

Pintu masuk ke laman web ujian percuma MBTI adalah https://www.16personalities.com/ch. Platform ini menyediakan antara muka Cina. Pengguna secara anonim boleh menjalankan ujian yang mengandungi versi asas dan lengkap. Mereka melengkapkan soalan pelbagai pilihan kira-kira 72 soalan dalam kira-kira 15 hingga 20 minit. Sistem ini dengan serta -merta menjana laporan peribadi yang meliputi kod jenis keperibadian, analisis keperibadian dan cadangan sosial kerjaya, dan menyokong eksport PDF, dan penyulitan data dan pemprosesan tanpa pengekalan.

Bagaimana untuk mencari persimpangan dua tatasusunan dalam PHP? Bagaimana untuk mencari persimpangan dua tatasusunan dalam PHP? Sep 26, 2025 am 06:23 AM

Gunakan fungsi array_intersect () untuk mencari persimpangan dua tatasusunan, yang mengembalikan unsur -unsur yang wujud dalam setiap array pada masa yang sama, dan nama -nama utama dikekalkan dari array pertama. Sebagai contoh: $ arr1 = ['Apple', 'Banana', 'Orange']; $ arr2 = ['Banana', 'Kiwi', 'Apple']; Hasilnya ialah ['Apple', 'Pisang'].

See all articles