سؤال

أحاول حقًا إظهار ما تقدمه لي htmlentities، لكنه لا يعطيني & euro;للحرف €.

أنا أحاول

echo htmlentities(htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,ISO-8859-1),ENT_COMPAT,ISO-8859-1);
    echo '<br>';
    echo htmlentities(htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,UTF-8),ENT_COMPAT,UTF-8);

ولكلا أحصل عليه

لشبونة-فيينا DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ

لشبونة-فيينا DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ

لم أحصل أبدًا على & يورو؛

هل يعرف أحد كيفية الحصول على هذا الحق؟

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

المحلول

ويناقش هذا هنا . يبدو € (&#8364;) يعمل في كثير من الأحيان.

نصائح أخرى

ما هو ترميز الملف الأصلي للملف الذي تستخدم فيه هذه العبارات؟

إذا كنت تستخدم نظام التشغيل Windows، فمن المحتمل جدًا أن يكون الملف مشفرًا ويندوز-1252 (CP1252) وليس في ايزو-8859-1, ايزو-8859-2 أو ترميز UTF-8.

ال العلامة هي 0x80 في نظام التشغيل Windows-1252، يقوم ISO-8859-15 بتشفير ملف التوقيع مع 0xA4 بينما لا يحتوي ISO-8859-1 على ملف التوقيع تماما (انظر للاجابة من آرون روتيفيل).يجب عليك التأكد من تمرير مجموعة الأحرف الصحيحة المستخدمة للسلسلة إلى htmlentities().أفضل الممارسات هي استخدام ترميز UTF-8 لجميع ملفاتك.

لو htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,'Windows-1252') يعمل فأنت تستخدم مجموعة الأحرف CP1252.

لقد لاحظت أيضًا أنك تفتقد علامات الاقتباس حول مجموعات الأحرف في المثال الخاص بك أعلاه.وقد يكون هذا أيضًا سببًا للمتاعب.

استخدم ISO-8859-15 بدلا من ISO-8859-1.

وISO-8859-15 (ISO Latin 9) يختلف عن ISO-8859-1 (ISO Latin 1) ويضيف علامة اليورو والحروف الفرنسية والفنلندية في عداد المفقودين في Latin-1 (ISO-8859-1).

echo htmlentities('Working htmlentities() now 99€ off!', ENT_COMPAT, 'ISO-8859-15');

ويجب أن تعود

Working htmlentities() now 99&euro; off!
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top