سؤال

لدي خادم نسخ احتياطي يدعم موقعي المباشر تلقائيًا ، كل من الملفات وقاعدة البيانات.

على الموقع المباشر ، يبدو النص جيدًا ، ولكن عندما تشاهد النسخة المتطابقة منه ، فإنه يعرض "؟" ضمن بعض النص. يتم تخزين هذا النص ضمن جدول قاعدة بيانات الأخبار.

فيما يلي لقطة شاشة لوجودها على الخادم المباشر ومنه على الخادم المتطابق.

ماذا يمكن أن يحدث في عملية نسخ احتياطي للخادم المتطابق؟alt text

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

المحلول

المقالات التالية ستكون مفيدة

http://dev.mysql.com/doc/refman/5.0/en/charset-syntax.html

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

بعد الاتصال بإصدار قاعدة البيانات ، الأمر التالي:

تعيين الأسماء 'UTF8' ؛

تأكد من أن صفحة الويب الخاصة بك تستخدم أيضًا ترميز UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

تقدم PHP أيضًا العديد من الوظائف التي ستكون مفيدة للتحويلات:

http://us3.php.net/manual/en/function.iconv.php

http://us.php.net/mb_convert_encoding

نصائح أخرى

قم بتحرير ملف تكوين Apache الخاص بك على خادم "Mirror" (الخادم مع المشكلة) ، والتعليق على السطر التالي:

AddDefaultCharset UTF-8

ثم أعد تشغيل Apache:

service httpd restart

المشكلة هي أن سطر "AddDefaultCharset UTF-8" يتجاوز نوع المحتوى المحدد في ملفات .html ؛ على سبيل المثال:

<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

الأعراض الأكثر شيوعًا هي أن رموز الأحرف التي تزيد عن 127 معروضة مثل الماس الأسود مع علامات استفهام عليها (بالكروم أو سفاري أو فايرفوكس) ، أو كصناديق صغيرة (في IE والأوبرا). عادةً ما تحتوي ملفات HTML التي تم إنشاؤها بواسطة Microsoft Word على العديد من هذه الأحرف ، الأكثر شيوعًا هي رمز الحرف 160 = 0xA0 ، وهو ما يعادل "" في ترميز Windows-1252 ، وغالبًا ما يتم العثور عليه بين علامات span ، مثل هذا:

<span style="mso-spacerun: yes">ááá </span>

وصلت إلى هنا بحثًا عن حل لـ JavaScript المعروض في المتصفح وعلى الرغم من عدم ارتباطه مباشرة بقاعدة بيانات ...

في حالتي ، قمت بنسخ بعض النص الذي وجدته على الإنترنت في ملف JavaScript وحفظته باستخدام Windows Notepad.

عندما تستخدم الصفحة التي تستخدم ملف JavaScript ، كانت الأوتار هناك علامات استفهام (مثل تلك الموضحة في السؤال) بدلاً من الأحرف الخاصة مثل الحروف المعلنة ، إلخ.

فتحت الملف باستخدام Notepad++. مباشرة بعد فتح الملف ، رأيت أن تشفير الأحرف تم تعيينه كـ ANSI كما ترون (مؤشر الماوس على تذييل) في لقطة الشاشة التالية:

enter image description here

لحل المشكلة ، انقر فوق Encoding القائمة في Notepad++ واختيار Encode in UTF-8. يجب أن تكون على ما يرام. قون

لم يفسر متصفحك ترميز الصفحة بشكل صحيح (إما لأنك أجبرتها على إعداد معين ، أو تم تعيين الصفحة بشكل غير صحيح) ، وبالتالي لا يمكنك عرض بعض الأحرف.

سيكون هذا شيء يتعلق بتشفيرات الأحرف.

هل أنت متأكد من أن الموقع المتطابق لديه نفس الخصائص فيما يتعلق بتشفير الأحرف مثل الخادم الرئيسي الخاص بك؟

اعتمادًا على نوع الخادم الذي لديك ، قد يكون هذا خاصية لعملية الخادم نفسها ، أو قد يكون متغيرًا للبيئة.

على سبيل المثال ، إذا كانت هذه بيئة UNIX ، فربما حاول مقارنة Lang أو LC_ALL؟

أنظر أيضا هنا

تحقق من مجموعة الأحرف التي تنبعث منها الخادم المتطابق. يبدو أن هناك فرقًا عن ذلك إلى الخادم الرئيسي - يبدو أن الموقع المباشر يخرج Unicode ، حيث لا تكون المرآة. أيضًا ، من الجيد عادةً فرك أحرف Unicode في المحتوى الوارد الخاص بك واستبدالها بكيانات HTML المناسبة.

تعتبر مشكلتك المحددة "عروض الأسعار الذكية" و "شرطات EM" و "en reves." أعلم أنه يمكنك استبدال شرطات EM بـ &mdash; و N-DASHES مع &ndash; (والتي يجب أن يتم على جانب الإدخال من قاعدة البيانات الخاصة بك) ؛ لا أعرف ما هو الاستبدال الصحيح للاقتباسات الذكية. (عادةً ما أقوم باستبدال جميع الاقتباسات المفردة المجعد بـ 'وجميع عروض الأسعار المزدوجة المجعد مع "... قد لا تتردد المهوسون في الطباعة في الأفق.)

يجب أن أشير إلى أن بعض المتصفحات أكثر تسامحًا من غيرها مع هذه المشكلة-يميل Internet Explorer على Windows إلى اكتشاف هذا و "إصلاح" هذا ؛ تعرض Firefox ومعظم المتصفحات الأخرى علامات الاستفهام.

عادةً ما ألعن MS Word ثم أقوم بتشغيل wscript التالي.

// استبدل بالمسار إلى ملف يحتاج إلى التنظيف
path = "test.html"

var go = wscript.createBject ("scripting.filesystemObject") ؛
var content = go.getFile (path) .OpenastExtStream (). readAll () ؛
var out = go.createTextFile ("Clean-"+path ، true) ؛

// حرف او رمز
content = content.replace (/"/g ، '"') ؛
content = content.replace (/"/g ، '"') ؛
content = content.replace (/'/g ، "'") ؛
content = content.replace (/-/g ، "-") ؛
content = content.replace (/©/g ، "©") ؛
content = content.replace (/®/g ، "®") ؛
content = content.replace (/°/g ، "°") ؛
content = content.replace (/¶/g ، "u003Cp style=";text-align:right;direction:rtl"> ") ؛
content = content.replace (/¿/g ، "¿") ؛
content = content.replace (/¡/g ، '¡') ؛
content = content.replace (/¢/g ، '¢') ؛
content = content.replace (/£/g ، '£') ؛
content = content.replace (/¥/g ، '¥') ؛

out.write (المحتوى) ؛

Unicode أو شخصيات أخرى مجموعة الأحرف التي تتساقط؟

لقد رأيت أحرفًا "غريبة" مماثلة تظهر على المواقع التي عملت عليها في كثير من الأحيان عندما يتم نسخ النص من بريد إلكتروني أو بعض تنسيق المستندات الآخر (على سبيل المثال) في محرر نصوص. يمكن للمحرر عرض أحرف ASCII غير ASCII ولكن المتصفح لا يستطيع ذلك. بالنسبة لموقع الويب ، أود أن أقترح البحث عن رمز كيان HTML للشخصية وإدخال ذلك بدلاً من ذلك ... أو التبديل إلى المزيد من القياسيات.

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