سؤال

لدي هذه القيمة في قاعدة بيانات mysql:"A+" هو اسم مجلة.أنا يمكن أن أراه يجلس في قاعدة البيانات, ولكن أنا لا يمكن أن ينجح في أن يكون ذلك العرض من خلال php.عندما جلب البيانات sql ، النواتج

"أ "

حاولت utfencode() utfdecode() htmlentities() ...ولكن دون جدوى.أنا تفشل في تشخيص المشكلة.في حالة يهم, لقد جلب هذه البيانات عن طريق ajax (مسج تحميل (وظيفة))

تحديث:

اتضح علامة + إزالة أثناء تحليل البيانات من خلال التعبير العادية.لا يمكن أن يبدو للعثور على إصلاح ذلك أيضا.preg_quote() لا جدوى منها.

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

المحلول

ومن الممكن أن مسج وتفسير بأنها رابط المشفرة '+' علامة، والتي يمكن أن تفسر على أنها مسافة. أضف بعض التعليمات البرمجية وأنا متأكد من أن أحدا يمكن أن أعطيك إجابة كاملة.

نصائح أخرى

على + حرف تفسير الفضاء عندما تكون البيانات المعلنة application/x-www-form-urlencoded:

هذا هو الافتراضي نوع المحتوى.أشكال تقديمها مع نوع المحتوى هذا يجب أن يكون ترميز على النحو التالي:

  1. الأسماء والقيم هرب. الفضاء الشخصيات يتم استبدال '+', ثم محفوظة الشخصيات هرب كما هو موضح في [RFC1738] ، القسم 2.2:الأحرف غير الأبجدية الرقمية يتم استبدال '%HH'،في المئة توقع اثنين من أرقام ست عشرية تمثل رمز ASCII للحرف.فواصل الأسطر هي ممثلة "CR إن" أزواج (أي '%0D%0A').
  2. التحكم أسماء/القيم المدرجة في الترتيب التي تظهر في المستند.الاسم هو فصل من قيمة '= و أزواج الاسم/القيمة مفصولة عن بعضها البعض بواسطة '&'.

لذلك عليك أن ترميز بشكل صحيح.في جافا سكريبت ، استخدام encodeURIComponent وظيفة إذا كنت ترغب في استخدام + حرف في URI:

"http://www.example.com/?q=" + encodeURIComponent("A+")

هل تمريرها كمعلمة جافا سكريبت دون urlencode () 'جي ذلك؟

حسنا، منذ السبيل الوحيد لجعله العمل هو أن تفعل

echo urlencode("this is the A+ text");


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

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