سؤال

لدي الصغيرة اياكس التطبيق المدمج مع php.

باستخدام phpMyAdmin لدي مجموعة الخلية قاعدة البيانات الى utf-8, و قد استوردت ملف النصي الذي يحتوي utf-8 البيانات في ذلك.

هذا يعمل بشكل جيد على جهاز ويندوز مع easyphp, بعد إضافة مجموعة أحرف-server=utf8 الافتراضي-مجموعة الأحرف=utf8 إلى بلدي.cnf.

لقد حاولت نقل هذا الإنتاج الملقم حيث لم يكن لديك الوصول إلى ملف التكوين و الشخصيات مثل علامات تغير في الصوت لا يتم عرض.

هل هناك شيء يمكن أن يكون في كود php(وليس ملف التكوين) لحل هذه المشكلة ، أو بعض الأوامر لا يمكن أن تعطي الخلية ؟

حاولت تغيير قاعدة البيانات vweb_50 مجموعة الأحرف الافتراضية utf8 COLLATE utf8_bin مع بريس في محاولة من utf8_general_ci ولكن لا فرق.

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

المحلول

هناك بضعة أشياء يجب القيام به هنا ، وأنا لست متأكدا من أنني أفهم مشكلتك بشكل صحيح, ولكن إذا كنت لا أعتقد أكثر من ذلك يمكن معالجتها مع وظائف PHP utf8_encode و utf8_decode:

  • utf8_encode
    • ترميز ISO-8859-1 السلسلة إلى UTF-8
  • utf8_decode
    • هذه الوظيفة يترجم البيانات ، يفترض أن يكون UTF-8 ترميز ISO-8859-1.

أيضا, النظر في htmlentities إذا لزم الأمر.

نصائح أخرى

إذا كنت تستخدم UTF-8 في جميع أنحاء التطبيق (أي أوصي)، لا تحتاج وظائف utf8_encode / فك شفرة. هل راجعت الذي ترميز صفحتك يتم تقديم في؟ ربما تم تكوين ملقم لارسال-ايزو 8859-1 كما محارف، في حين ترسل بيئة الاختبار UTF-8. تعيين ترميز مع رأس نوع المحتوى:

header("Content-Type: text/html; charset=utf-8");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top