لماذا لا يمكنني مشاهدة شخصيات اللغة الأجنبية في MySQL DB؟
سؤال
أنا أدخل الشخصيات التالية في ديسيبل الخاص بي: 汉字 / 漢字
هذه هي علامة التعريف في الصفحة التي تقوم بإدخال الأحرف:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
لقد غيرت جميع الأعمدة الموجودة في الجدول الخاص بي الذي يحمل الأحرف ليكون UTF8_UNICODE_CI
تظهر الشخصيات الأجنبية مثل ذلك في DB: æ±‰å— / æ¼¢å—
عندما أستخدم عبارة SQL لعرض تلك الأحرف الأجنبية على الصفحة ، فإنها تعرض بشكل صحيح مرة أخرى على النحو التالي: 汉字 / 漢字
أظن أن لدي بعض الإعدادات غير الصحيحة في ديسيبل الخاص بي ، لأنه يخزنها بشكل صحيح ، ولكن لا يعرضها بشكل صحيح.
ما الذي يمكنني فعله لجعل أحرف اللغة الأجنبية لعرضها بشكل صحيح في ديسيبل الخاص بي؟
تعديل: ها هو ملابسي:
$sql = 'INSERT INTO orders (foreign_characters)
VALUES (?)';
$stmt = $conn->stmt_init();
$stmt->bind_param('s', $_SESSION['foreign_characters']);
$inserted = $stmt->execute();
المحلول
هل الاتصال بقاعدة البيانات أيضا UTF-8 مشفرة؟
جرب هذا: مباشرة بعد الاتصال بقاعدة بيانات MySQL ، قم بتشغيل الاستعلام التالي.
SET NAMES utf8;
هذا يجب أن يفعل الخدعة (انظر MySQL Doc). (نعم ، عليك القيام بذلك في كل مرة تتصل فيها.)
راجع للشغل: لا تعتمد فقط على <meta>
-TAG ، أرسل رأس HTTP المناسب.