لحل كود JSP المشوه، يجب عليك أولاً فهم أسباب كود JSP المشوه
1. عند إعداد الخادم وتثبيت MYSQL، سيُطلب منك اختيار ترميز إذا كان هذا الترميز غير متوافق مع صفحة الويب الخاصة بك قد يتسبب في تشويه صفحة JSP.
2. عند إنشاء قاعدة بيانات في أنظمة مثل PHPMYADMIN أو mysql-front، سيُطلب منك اختيار تشفير. إذا كان هذا التشفير غير متوافق مع صفحة الويب الخاصة بك، فقد يتسبب أيضًا في تشويه صفحات JSP.
3. عند إنشاء جدول، سيُطلب منك اختيار ترميز. إذا كان هذا الترميز غير متوافق مع ترميز صفحة الويب الخاصة بك، فقد يتسبب ذلك أيضًا في تشويه صفحة JSP.
4. يمكنك اختيار الترميز عند إضافة الحقول عند إنشاء جدول. إذا كان هذا الترميز غير متوافق مع ترميز صفحة الويب الخاصة بك، فقد يتسبب ذلك أيضًا في تشويه صفحة JSP.
5. ترميز صفحة JSP التي أرسلها المستخدم غير متوافق مع ترميز صفحة JSP التي تعرض البيانات، مما سيؤدي بالتأكيد إلى تشويه صفحة JSP.
على سبيل المثال، صفحة JSP حيث يقوم المستخدم بإدخال البيانات تكون في كود big5، ولكن صفحة JSP حيث يتم عرض إدخال المستخدم تكون في gb2312. سيؤدي هذا بنسبة 100٪ إلى تشويه صفحة JSP.
6. يرجى ملاحظة أن مجموعة الأحرف غير صحيحة:
1. قد يحتوي النص الذي تراه عادةً على بعض مواقع الويب على عدة ترميزات، على سبيل المثال، إذا رأيت حرفًا صينيًا تقليديًا، فقد يكون ترميزًا كبيرًا 5، أو قد يكون ترميزًا utf-8، أو قد يكون ترميزًا غيغابايت. وهذا يعني أن هناك أحرفًا صينية تقليدية مشفرة باللغة الصينية المبسطة، وهناك أيضًا أحرف صينية مبسطة مشفرة باللغة الصينية التقليدية.
إذا كنت تنشئ صفحة ويب بتشفير صيني مبسط، فسيتم تعيين الترميز على GB2312. إذا أرسل الزائرون من هونج كونج وتايوان معلومات صينية تقليدية، فقد يتسبب ذلك في رموز مشوهة. الحل هو (1) تعيين ترميز موقع الويب على utf-8 ، بحيث يكون متوافقًا مع جميع الشخصيات في العالم (2) إذا كان موقع الويب يعمل لفترة طويلة ويحتوي على الكثير من البيانات القديمة، ولا يمكن تغيير إعدادات اللغة الصينية المبسطة، فمن المستحسن ضبط الصفحة. الترميز إلى GBK.
الفرق بين GBK وGB2312 هو أن GBK يمكنه عرض أحرف أكثر من GB2312 لعرض الأحرف التقليدية في تعليمات برمجية مبسطة، يمكنك فقط استخدام GBK
7.الترميز المحدد في بيان اتصال JSP بقاعدة بيانات MYSQL غير صحيح.
8. إذا لم تحدد صفحة JSP التشفير لإرسال البيانات، فسوف يتسبب ذلك في كود مشوه:
لذلك، أسباب كود JSP المشوه ليست أكثر مما سبق بعد معرفة الأسباب، من الأسهل بكثير حل JSP المشوه دعونا نعبر عنها واحدة تلو الأخرى:
1. إذا لم يكن بالإمكان تغيير كود تثبيت MySQL، يقوم العديد من الأصدقاء بشراء مضيفات افتراضية لبناء مواقع الويب ولا يحق لهم تغيير رمز التثبيت الخاص بـ MYSQL، يمكننا تخطي هذه الخطوة، لأنه طالما أن الخطوات التالية صحيحة، لا يزال من الممكن حل مشكلة الكود المشوه.
2. قم بتعديل ترميز قاعدة البيانات إذا كان ترميز قاعدة البيانات غير صحيح: يمكنك تنفيذ الأمر التالي في phpmyadmin: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin.
الأمر أعلاه هو ضبط ترميز قاعدة بيانات الاختبار على utf8
3. قم بتعديل ترميز الجدول: ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
الأمر أعلاه هو تغيير ترميز فئة الجدول إلى utf8
4. تعديل ترميز الحقل:
تغيير الجدول `اختبار` تغيير `dd` `dd` VARCHAR( 45 ) مجموعة الأحرف utf8 COLLATE utf8_bin ليست فارغة
الأمر أعلاه هو تغيير ترميز حقل dd في جدول الاختبار إلى utf8
5. إذا كان من السهل حل هذا الموقف، فما عليك سوى التحقق من الصفحة وتعديل مجموعة أحرف الملف المصدر.
, // إذا كان هذا صحيحا، فلن تكون هناك مشكلة
6. في هذه الحالة، يمكنك أيضًا تعديل مجموعة أحرف الصفحة.
7. في بيان JSP للاتصال بقاعدة البيانات،
Private String url="jdbc:mysql://localhost/"+DB_NAME+" user="+LOGIN_NAME+"&password="+LOGIN_PASSWORD+"&characterEncoding=GBK"; // يعتمد المفتاح على ترميز الأحرف
8. في حالة الأحرف المشوهة، ما عليك سوى إضافة request.setCharacterEncoding("GBK") في بداية الصفحة؛ ما عليك سوى تحديد
البيانات المقدمة. ملاحظة: بعد التعديل وفقًا للطريقة المذكورة أعلاه، يمكنك فقط التأكد من إدراجها حديثًا لن يتم تشويه البيانات. على سبيل المثال: إذا كانت البيانات التي أرسلها المستخدم الخاص بك هي BIG5، ولكنك تريد استخدام الطريقة المذكورة أعلاه لتغييرها ليتم عرضها بشكل صحيح على صفحة الويب GB2312، فمن المستحيل استخدام هذا النوع من التعليمات البرمجية النصية لا يمكن حل التحول إلا عن طريق كتابة برنامج آخر، يرجى WEB745 .com مقالات أخرى ذات صلة
ملخص: أولاً، تحتاج إلى تحديد ما إذا كانت أحرف JSP مشوهة بعد إدراجها في قاعدة البيانات، أو ما إذا كانت صفحة JSP مشوهة مباشرة بعد إرسالها. إذا كانت JSP مشوهة بعد تلقي البيانات من الصفحة السابقة مباشرة. يجب أن تكون مجموعة الأحرف خاطئة، ولكن لم تتم إضافة request.setCharacterEncoding ("GBK")؛
إذا كان ذلك بسبب قاعدة البيانات، فيرجى الرجوع إلى الطرق 2 و3 و4 أعلاه.
قد تكون مشكلة في التشفير، اتصل بقاعدة البيانات بهذه الطريقة وانظر.
jdbc:mysql://localhost:3306/xxxx useUnicode=true&characterEncoding=UTF-8
معرفة ما إذا كان يعمل