عادةً ما نقوم بالتشفير مرة واحدة ثم نقبل المعلمات مباشرة
String para = request.getParameter(paramName); وذلك لأن الحاوية يمكنها فك التشفير تلقائيًا (DECODE) لنا
بشكل عام، عند التشفير، يتم استخدام UTF-8 (ترميز النظام) إذا تم استخدام UTF-8 أيضًا عند فك التشفير، فلن تظهر الأحرف المشوهة الأسطورية ~
ومع ذلك، إذا تم استخدام UTF-8 في صفحة JSP، ولكن تم استخدام ترميزات أخرى عند فك تشفير الحاوية، فقد تظهر أحرف مشوهة.
في هذا الوقت، يمكنك بشكل عام استخدام:
String param = new String(request.getParameter(paramName).getBytes("ISO-8859-1"),"UTF-8");
يمكن أن يخرج أيضا.
لقد جربت كل الوسائل ماذا علي أن أفعل إذا كنت لا أزال لا أستطيع معرفة ذلك؟
كيفية حل مشكلة التشفير هذه الناتجة عن خوادم متعددة:
افترض السلسلة: = "يانغ"؛
قم بالتشفير مرة واحدة%E9%98%B3
قم بالتشفير مرتين%2525E9%252598%2525B3
في المرة الثانية، تقوم الحاوية تلقائيًا بفك التشفير هذه المرة، سواء كانت GBK أو UTF-8 أو ISO-8859-1، فيمكنها الحصول على %E9%98%B3 بشكل صحيح.
ثم طالما قمت بفك التشفير مرة واحدة، يمكنك الحصول على "Yang"