كيفية منع الأحرف غير ASCII من حفظها في قاعدة بيانات دروبال؟

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

  •  01-10-2019
  •  | 
  •  

سؤال

لقد لاحظت أنه في دروبال بعد أن يدخل بعض المستخدمين المحتوى في جسم العقدة ، يتم حفظ شخصيات مثل عروض الأسعار والرسائل المتحركة على النحو التالي: â € œ œ œ

هذا يرجع إلى أن المستخدم يدخل أحرفًا غريبة أو شيء من هذا القبيل ...

  1. هل هذا يعني أن قاعدة بيانات Drupal لم يتم تكوينها لـ UTF8؟
  2. كيف يمكن تصحيح هذا حتى يتم حفظها بالفعل على أنها عادل؟

تحديثتبين ، في حالتي ، كانت الشخصيات التي تم فك تشفيرها هي نتائج لتنزيل Drupal MySQL Dump التي يتم حفظها على أنها ASCII وتحميل ذلك في MySQL لإعادة توزيع قاعدة البيانات. حدث هذا مرتين ، مرة واحدة عندما هاجرت الاستضافة والمرة الثانية عندما أفسدت DB واضطررت إلى استعادة هو يدويًا.

الحل هو أنك تستخدم وحدة النسخ الاحتياطي Drupal و Migrate وتنزيل ملف النسخ الاحتياطي وعليك استعادة يدويًا هو تحويل الملف في Notepad أو أي شيء من ASCII إلى UTF8. لقد اختبرت هذا وهو يعمل.

هل كانت مفيدة؟

المحلول

’ “ هو ترميز UTF-8 من ’ “ يسيء تفسيره على أنه Windows-1252 (ليس لاتيني -1).

هل هذا يعني أن قاعدة بيانات Drupal لم يتم تكوينها لـ UTF8؟

هذا احتمال واحد. البعض الآخر:

  • البرنامج الذي يضع البيانات في قاعدة البيانات مكسورة.
  • يتم كسر البرنامج الذي يسترجع البيانات من قاعدة البيانات.

نصائح أخرى

  1. هل هذا يعني أن قاعدة بيانات Drupal لم يتم تكوينها لـ UTF8؟

أود أن أقول إنه من المحتمل أن يتم تعيين جدول (جدول) قاعدة البيانات latin1. إلق نظرة. بدلاً من ذلك ، يمكن أن يكون قاعدة البيانات الإتصال ليس UTF-8 مشفر (إرسال أ SET NAMES utf8; الاستعلام يساعد في بعض الأحيان.)

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