PHP شخصية غريبة قبل توقيع £؟
-
20-09-2019 - |
سؤال
لسبب ما أحصل على ملف Â
76756687 شخصية غريبة عندما أكتب A £ في حقل نص في النموذج الخاص بي؟
المحلول
كما تشك في ذلك ، إنها مشكلة في ترميز الأحرف - هل تم تعيين الصفحة لاستخدام charset من UTF -8؟ (لا يمكنك أن تخطئ في هذا الترميز حقًا.) أيضًا ، ربما ترغب في تشفير رمز الجنيه في طريقه للخروج (£
)
كمثال على مجموعة الأحرف (لكل من صفحة النموذج والبريد الإلكتروني HTML) يمكنك استخدام:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
ومع ذلك ، هل هناك سبب وجيه للمستخدم للدخول إلى رمز العملة؟ هل سيكون من الأفضل أن يكون هناك عنصر نص ثابت أو إسقاط إلى يسار حقل النص؟ (لا تتردد في تجاهل ما إذا كنت أتحدث الحمار وكنت تستخدم Textarea مجانيًا أو تلخيصًا.)
نصائح أخرى
من المحتمل أنك تستخدم UTF-8 كتشفير حرف ولكن لا تعلن إخراجك بشكل صحيح. بسبب ال £
يتم ترميز الحرف (U+00a3) في UTF-8 مع 0xc2a3. ويمثل تسلسل البايت هذا الشخصين Â
و £
عند تفسيرها مع ISO 8859-1.
لذلك تحتاج فقط إلى تحديد طابعك الترميز بشكل صحيح. في PHP يمكنك استخدام header
وظيفة لتعيين القيمة المناسبة ل نوع المحتوى حقل الرأس مثل:
header('Content-Type: text/html;charset=utf-8');
ولكن تأكد من استدعاء هذه الوظيفة قبل أي إخراج. وإلا يتم إرسال رأس HTTP بالفعل ولا يمكنك تعديله.