لماذا لا يمكنني مشاهدة شخصيات اللغة الأجنبية في MySQL DB؟

StackOverflow https://stackoverflow.com/questions/2488886

  •  21-09-2019
  •  | 
  •  

سؤال

أنا أدخل الشخصيات التالية في ديسيبل الخاص بي: 汉字 / 漢字

هذه هي علامة التعريف في الصفحة التي تقوم بإدخال الأحرف:

<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 المناسب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top