لا يمكن الحصول على علامة "+" لعرض
-
21-08-2019 - |
سؤال
لدي هذه القيمة في قاعدة بيانات mysql:"A+" هو اسم مجلة.أنا يمكن أن أراه يجلس في قاعدة البيانات, ولكن أنا لا يمكن أن ينجح في أن يكون ذلك العرض من خلال php.عندما جلب البيانات sql ، النواتج
"أ "
حاولت utfencode() utfdecode() htmlentities() ...ولكن دون جدوى.أنا تفشل في تشخيص المشكلة.في حالة يهم, لقد جلب هذه البيانات عن طريق ajax (مسج تحميل (وظيفة))
تحديث:
اتضح علامة + إزالة أثناء تحليل البيانات من خلال التعبير العادية.لا يمكن أن يبدو للعثور على إصلاح ذلك أيضا.preg_quote() لا جدوى منها.
المحلول
ومن الممكن أن مسج وتفسير بأنها رابط المشفرة '+' علامة، والتي يمكن أن تفسر على أنها مسافة. أضف بعض التعليمات البرمجية وأنا متأكد من أن أحدا يمكن أن أعطيك إجابة كاملة.
نصائح أخرى
على +
حرف تفسير الفضاء عندما تكون البيانات المعلنة application/x-www-form-urlencoded
:
هذا هو الافتراضي نوع المحتوى.أشكال تقديمها مع نوع المحتوى هذا يجب أن يكون ترميز على النحو التالي:
- الأسماء والقيم هرب. الفضاء الشخصيات يتم استبدال '
+
', ثم محفوظة الشخصيات هرب كما هو موضح في [RFC1738] ، القسم 2.2:الأحرف غير الأبجدية الرقمية يتم استبدال '%HH
'،في المئة توقع اثنين من أرقام ست عشرية تمثل رمز ASCII للحرف.فواصل الأسطر هي ممثلة "CR إن" أزواج (أي '%0D%0A
').- التحكم أسماء/القيم المدرجة في الترتيب التي تظهر في المستند.الاسم هو فصل من قيمة '
=
و أزواج الاسم/القيمة مفصولة عن بعضها البعض بواسطة '&
'.
لذلك عليك أن ترميز بشكل صحيح.في جافا سكريبت ، استخدام encodeURIComponent
وظيفة إذا كنت ترغب في استخدام +
حرف في URI:
"http://www.example.com/?q=" + encodeURIComponent("A+")
هل تمريرها كمعلمة جافا سكريبت دون urlencode () أ > 'جي ذلك؟
حسنا، منذ السبيل الوحيد لجعله العمل هو أن تفعل
echo urlencode("this is the A+ text");
وكان يعمل ولا يبدو أن تضر بقية النص، ولكن أنا لا أفهم المنطق وراء هذا. على أي حال، وذلك بفضل لجميع أولئك الذين حاولوا تقديم المساعدة.
ويمكنك إضافة حرف الهروب قبل \ ونرى كيف يعمل. إن لم يكن تحويل البيانات الميدانية باستخدام htmlentities