ما ترميز محتوى يقوم استخدام مخطوطة برل CGI بشكل افتراضي؟

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

سؤال

وأنا تعديل تطبيق CGI ناضجة مكتوب في بيرل وحان مسألة ترميز المحتوى يصل. تقارير المتصفح أن المحتوى هو ISO-8859-1 ترميز والتطبيق يعلن ISO-8859-1 كما محارف في رؤوس HTTP ولكن لا يبدو من أي وقت مضى إلى <م> فعلا الترميز. أي من تقنيات الترميز المختلفة موضح في الدروس perldoc ( شفر و <لأ href = "HTTP : //perldoc.perl.org/encoding.html "يختلط =" نوفولو noreferrer "> ترميز و <لأ href =" http://perldoc.perl.org/open.html "يختلط =" نوفولو noreferrer "> فتح ) وتستخدم في التعليمات البرمجية بحيث أنا مرتبك قليلا عن كيفية يجري بالفعل المشفرة الوثيقة.

وكما ذكر، فإن التطبيق هو ناضجة تماما، ومن المرجح يسبق العديد من أساليب الترميز الحالية. لا أحد يعرف من أي تقنيات القديمة أو إهمال وأرجو أن تبحث عنه؟ لماذا لا ترميز بيرل نفترض / الافتراضي عندما لم يتم توفير التوجيه من قبل المطور؟

والشكر

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

المحلول

وافتراضيا بيرل يعالج سلاسل بأنها تسلسل بايت، لذلك إذا كنت تقرأ من ملف، وطباعة ذلك إلى STDOUT، فإنه سوف ينتج نفس تسلسل بايت. إذا القوالب الخاصة بك اللاتينية-1، سوف الإخراج الخاص بك أيضا أن تكون اللاتينية-1.

إذا كنت تستخدم سلسلة في سياق سلسلة نصية (مثل مع uc، lc وهلم جرا) يفترض بيرل اللاتينية-1 دلالات، إلا إذا تم فك السلسلة قبل.

أكثر على بيرل، ترميز وترميزات

نصائح أخرى

سوف

وبيرل لا تحمل أي شيء، ولكن المتصفح هو افتراض أن الترميز الذي يستند عادة على التخمين. وثائق يتم إخراج مباشرة، تماما كما كانت مكتوبة، إذا تم استخدام أي من تقنيات الترميز.

ويمكنك تحديد محارف في رأس HTTP نوع المحتوى.

وفي المقام الأول أود أن ننظر هو تكوين الملقم. إذا كنت لا وضع رأس ترميز المحتوى في البرنامج، كنت على الأرجح التقاط تخمين الملقم.

وتشغيل البرنامج النصي منفصلة عن الخادم لمعرفة ما هو انتاجها الفعلي. عندما يحصل خادم الإخراج من برنامج CGI (أي ليست NPH)، والخادم إصلاح ما يصل رأس عن أي شيء تراه مفقود قبل أن يرسل إلى العميل.

إذا تقارير متصفح المحتوى كما ISO-8859-1، ربما لم المخطوطة الخاص بك لا إخراج رؤوس الصحيحة لتحديد محارف؟

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