في مشروع الويب Java ، يتم تلخيص طريقة حل الكود المشوهة الصيني على النحو التالي
الحالة الأولى: استدعاء صفحة JSP لعرض التعليمات البرمجية المشوهة باللغة الصينية <br /> وصف المشكلة: استدعاء صفحة JSP من خلال المتصفح ، يظهر الرمز المشتعلة في المحتوى الصيني المعروض في المتصفح.
الحل: أولاً ، تأكد من أنه عندما يحفظ JSP محتوى الملف في المحرر ، فإنه يستخدم تنسيق الترميز لـ UTF-8 ، ثم أضف <٪@ pageencoding = "utf-8" ٪> إلى بداية صفحة JSP لحل هذه المشكلة الصينية المشوهة
الحالة الثانية: استدعاء صفحة servlet يعرض رمز مشوهة
وصف المشكلة: عند الاتصال Servlet عبر المتصفح ، يبدو المحتوى المعروض في Servlet مشوهًا.
الحل: قبل أن يستخدم servlet كائن الاستجابة للإخراج ، تنفيذ Response.setContentType ("Text/HTML ؛ Charset = UTF-8") ؛ اضبط ترميز محتوى الإخراج على UTF-8.
الحالة الثالثة: رمز مشوهة لنموذج البريد
وصف المشكلة: عندما يتم إرسال المعلمات إلى JSP المقابلة أو servlet من خلال عناصر النماذج في JSP أو HTML أو Servlet ، يتم عرض المعلمات المستلمة في JSP المستلمة أو servlet باللغة الصينية.
على سبيل المثال:
أرسل رمز JSP على النحو التالي:
<٪@ page language = "java" pageencoding = "utf-8" ٪> <html> <head> <title> أدخل النموذج </title> </head> <body> <form id = "inputform" name = "inputform" method = "post" action = "display.jsp"> username: <input type = "text" name = username "/> name = "password"/> <br/> <input type = "prish"
رمز JSP الذي يتلقى المعلمات هو كما يلي:
<٪ @ page language = "java" pageencoding = "utf-8" ٪> <html> <head> <tilte> استلام النموذج </title> </head> <body> <٪ request.setcharacterencoding ("UTF-8") ؛ ٪> اسم المستخدم: <٪ = request.getParameter ("username") ٪> <br/> كلمة المرور: <٪ = request.getParameter ("password") ٪> <br/> </body> </html>الحل: قبل استلام المعلمات المقدمة من المنشور ، استخدم طلبًا. راجع محتوى إدراج في نموذج الاستلام. بالطبع ، من الأفضل استخدام المرشحات الصينية لهذا النوع من المشاكل المشوهة.
الحالة الرابعة: تمر طريقة URI معلمات مشوهة
وصف المشكلة: عند تمرير المعلمات باستخدام نموذج ، يمكنك المرور عبر البريد أو الحصول عليه. النموذج لا ينطبق. يمكنك أيضًا تمرير المعلمات باستخدام طريقة الارتباط. هذه الطريقة من تمرير المعلمات هي في الأساس تمرير المعلمات كما GET. قد تظهر المعلمات التي تم تمريرها في هذه الطريقة أيضًا مشوهة عندما تظهر باللغة الصينية.
يحب:
انسخ الرمز كما يلي: <a href = "/webproject/display.jsp؟ username = Zhang San & Password = 123"> عرض اسم المستخدم وكلمة المرور </a>
الحل: إن جوهر المشكلة هو أن طريقة الترميز الافتراضية لمحتوى المعلمة الذي تم تمريره بواسطة طريقة GET يتم طلب ISO8859-1 ، واستخدام request.setcharacterencoding ("UTF-8") لا يمكن حل المشكلة. لحل هذه المشكلة ، قم بتعديل ملف التكوين لخادم Tomcat. تعديل السطر 43 من ملف conf/server.xml في دليل tomcat:
قبل التعديل:
<connector port = "8080" protocol = "http/1.1" maxThreads = "150" connectionTimeOut = "200000" redirectport = "8443"/>
المحتوى المعدل:
<connector port = "8080" protocol = "http/1.1" maxThReads = "150" connectionTimeOut = "200000" redirectport = "8443" uriencoding = "utf-8"/>
هذا يمكن أن يحل هذا النوع من المشاكل المشوهة.
الوضع الخامس:
وصف المشكلة: عند استخدام بعض مكتبات الفصل أو الأطر ، من أجل تحقيق تدويل محتوى الصفحة ، يجب كتابة ملف الخصائص المقابلة. سيظهر المحتوى الصيني في ملف الخصائص أيضًا مشوهًا عند عرضه.
الحل: يمكن حل هذه المشكلة المشوهة بواسطة أداة Native2ascii في JDK. استخدم الأمر التالي:
انسخ الكود على النحو التالي: native2ascii -ending utf -8 display.properties display_zh_cn.properties
سبب المشكلة المشوهة هو أن برنامج التحويل البرمجي Java يمكنه فقط التعامل مع ملفات الأحرف المشفرة بواسطة Latin-1 أو Unicode.
ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون مفيدًا لتعلم الجميع.