"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يفشل json_encode() في تشفير الأحرف المميزة من قاعدة بيانات MySQL بتشفير Latin1؟

لماذا يفشل json_encode() في تشفير الأحرف المميزة من قاعدة بيانات MySQL بتشفير Latin1؟

تم النشر بتاريخ 2024-11-07
تصفح:143

Why Does json_encode() Fail To Encode Accented Characters From a MySQL Database with Latin1 Encoding?

يواجه تشفير JSON صعوبة مع أحرف UTF-8 في MySQL

عند محاولة استرداد الأحرف المميزة من قاعدة بيانات باستخدام تشفير latin1_swedish_ci وترميزها في JSON باستخدام json_encode()، قد تكون النتيجة غير متوقعة. يتم تحويل النتيجة المقصودة، مثل "Abord â Plouffe،" إلى "فارغة"، مما يجعل JSON المشفر غير صالح.

لحل هذه المشكلة، من الضروري تشفير القيم المستردة إلى UTF-8 بشكل صريح قبل تطبيق json_encode (). وهذا يضمن أن مخرجات JSON تحتوي على أحرف UTF-8 الصحيحة ويتم التحقق من صحتها وفقًا لذلك. فيما يلي كيفية تنفيذ هذا الحل:

// Initialize an empty array for the encoded result set
$rows = array();

// Iterate over the PHPMyAdmin result set
while ($row = mysql_fetch_assoc($result)) {
  // Apply UTF-8 encoding to each row value
  $rows[] = array_map('utf8_encode', $row);
}

// Output the encoded $rows
echo json_encode($rows);

في هذا الكود المعدل، نستخدم وظيفة array_map لتطبيق utf8_encode على كل عنصر في كل صف في مجموعة النتائج. يضمن ذلك ترميز جميع الأحرف بشكل صحيح في UTF-8 قبل تنفيذ json_encode. وبالتالي، فإن مخرجات JSON الناتجة ستعكس الأحرف المقصودة بدقة، مع الحفاظ على الأحرف المميزة حسب الرغبة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3