1. عند استخدام AJAX لنقل البيانات من الصفحة المقدمة إلى وحدة تحكم الخلفية ، يظهر رمز مشتعل الصيني (علامة الاستفهام ؟؟؟).
بحثت عن حلول مختلفة عبر الإنترنت من قبل ، لكنهم لم ينجحوا. أخيرًا ، وجدت أنها كانت مشكلة في استلام خادم Tomcat.
حل:
الطريقة 1: Transcode المعلمات عندما تتلقى وحدة التحكم المعلمات
@ResponseBody@requestMapping (value = "/getjsondatabycityName" ، تنتج = "application/json") السلسلة العامة getjsonbyname (httpservletrequest طلب ، httpservletponse ،@requestparam string city_name) يلقي servlexception ، ioexception { //response.setContentType("text/html؛charset=utf-8 ") ؛ //request.setcharacterencoding("utf-8") ؛//solve the post golled problem system.out.println (request.getCharCterEncoding ()) ؛ city_name = new string (city_name.getbytes ("ISO-8859-1") ، "UTF-8") ؛ System.out.println ("City_Name:"+City_Name) ؛}الطريقة 2:
قم بتكوين ملف Service.xml في دليل Tomcat
tomcat7/conf/server.xml
أضف سمة الترميز لـ uriencoding = "UTF-8" إلى هذا السطر من الكود
<connector port = "8080" protocol = "http /1.1" connectionTimeOut = "20000" redirectport = "8443" uriencoding = "utf-8" />
تحليل السبب:
في الواقع ، فإن سبب المشكلة المشوهة هو أن تكوين tomcat الافتراضي ، يتم نقل الطلب المستلم باستخدام ISO-8859-1 ، مما يؤدي إلى مشكلة مشوهة باللغة الصينية. طالما يمكن نقل الرمز المشتعلة بشكل صحيح مع UTF-8 ، يمكن حل المشكلة المشوهة.
2. نقل البيانات العادي ، من صفحة JSP إلى وحدة تحكم الخلفية ، حل لمشكلة المشتقة باللغة الصينية
(1) تحقق أولاً مما إذا كان تنسيق ترميز صفحة JSP هو UTF-8
(2) تعيين التصفية الصينية
<!-الترميز الصيني-> <ilter> <filter-name> nAffleenCodingFilter </filter-name> <lipter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <inip-param> </ith-param> <INIT-PARAM> <IRING-PARAM> <PARAM-NAME> FORCEENCODING </param-name> <param-value> true </param-value> </IPAR-PARAM> </filter> <-filter-mapping> <filter-name> nameDencodingFilter </filter-name>
(3) اضبط تحويل بيانات JSON في ملف تكوين SPRINGMVC
<mvc: تعتمد على التعليقات التوضيحية> <mvc: سجلات الرسائل السجلات defaults = "true"> <!-ابدأ وظيفة شرح الربيع MVC ، أكمل تعيين الطلبات والشروح التعليقات التوضيحية لشرح التعليقات التوضيحية لطلبات التعليقات التوضيحية ISO-8859-1 بشكل افتراضي ، وتجنب الرموز المشفوفة. تم تعيين هذا على UTF-8-> <Bean> <property name = "supportedMediPes" value = "text/html ؛ charset = utf-8"/> </bean> <!-بدء تكوين تنسيق JSON ، وتحويل التنسيق تلقائيًا إلى تنسيق json ، لا توجد فئات أخرى مطلوبة-> <bean id = "jacksonmessageConverter"> value = "application/json ؛ charset = utf-8"/> </bean> </mvc: message-converters> </mvc:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.