موقف مناسب -> موقف رمز مشوهة عند الانتقال من JSP إلى العمل ، هنا أخذ GBK كمثال
1. إنشاء مرشح لترميز التحويل
مثال على موقع الملف: src.util.setcharacterencodingfilter.java
نسخة الكود كما يلي:
حزمة استخدام
استيراد java.io.ioException ؛
استيراد javax.servlet.filter ؛
استيراد javax.servlet.filterchain ؛
استيراد javax.servlet.filterConfig ؛
استيراد javax.servlet.servletexception ؛
استيراد javax.servlet.servletrequest ؛
استيراد javax.servlet.servletResponse ؛
استيراد javax.servlet.unavailablexception ؛
/**
* مرشح مثال يعين ترميز الحرف ليتم استخدامه في تحليل
* طلب وارد
*/
الطبقة العامة setCharCterEncodingFilter تنفس مرشح {
/**
* خذ هذا المرشح خارج الخدمة.
*/
تدمير الفراغ العام () {
}
/**
* حدد وتعيين (إذا تم تحديد) ترميز الحرف ليتم استخدامه ل
* تفسير معلمات الطلب لهذا الطلب.
*/
dofilter public void (طلب ServletRequest ، استجابة ServletResponse ،
سلسلة Filterchain) يلقي IoException ، servletexception {
request.setcharacterencoding ("GBK") ؛
// مرور التحكم في المرشح التالي
Chain.dofilter (طلب ، استجابة) ؛
}
init public void (filterConfig filterConfig) يلقي servletexception {
}
}
2. تعديل web.xml وأضف 2 مرشحات قبل تعيين FilterDispatcher
نسخة الكود كما يلي:
<؟
<إصدار Web-App = "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns: xsi = "http://www.w3.org/2001/xmlschema-inostance"
XSI: schemalocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
<stanker>
<Caneerer-Class> org.springframework.web.context.contextLoaderListener </stanker-class>
</beader>
<filter>
<filter-name> تعيين حرف ترميز </filter-name>
<ilter-class> util.setcharacterencodingfilter </filter-class>
</ilter>
<filter mapping>
<filter-name> تعيين حرف ترميز </filter-name>
<url-pattern>/*</url-pattern>
</filter mapping>
<filter>
<filter-name> Struts-Cleanup </filter-name>
<ilter-class> org.apache.struts2.dispatcher.actionContextCleanup </ilter-class>
</ilter>
<filter mapping>
<filter-name> Struts-Cleanup </filter-name>
<url-pattern>/*</url-pattern>
</filter mapping>
<filter>
<filter-name> struts2 </filter-name>
<ilter-class> org.apache.struts2.dispatcher.filterDispatcher </filter-class>
</ilter>
<filter mapping>
<filter-name> struts2 </filter-name>
<url-pattern>/*</url-pattern>
</filter mapping>
</web-app>
3. يجب أن يكون رأسك JSP الخاص بك
<٪@ page language = "java" pageencoding = "gbk" ٪>
4. تعديل إعدادات الترميز الافتراضية في Struts.xml
نسخة الكود كما يلي:
<struts>
<name constant = "struts.i18n.encoding" value = "gbk"> </statter>
...
...
...
</struts>
في الأساس ، يمكن أن يحل هذا مشكلة معظم الشخصيات الواردة
ملاحظة: إذا كانت قاعدة البيانات تستخرج الأحرف المشوهة ، مثل MySQL ، تؤكد أن الأحرف الموجودة في قاعدة البيانات الخاصة بك هي GBK ، وتحدد سلسلة الاتصال ترميز الأحرف.
<property name = "url" value = "jdbc: mysql: // localhost/database؟ useUnicode = true & directionoding = gbk"> </spleneration>