Der Filtercode zur Lösung des Problems verstümmelter chinesischer Zeichen im Internet enthält einen Absatz ähnlich dem folgenden:
Map<String,String[]> map = request.getParameterMap();//获取有乱码的map
if(isNotEncode){//只能在第一次解决乱码
for(Map.Entry<String, String[]> entry : map.entrySet()){//遍历map,解决所有值的乱码
String [] vs = entry.getValue();
for(int i=0;i<vs.length;i++){
vs[i] = new String(vs[i].getBytes("iso8859-1"),encode);
}
}
isNotEncode = false;//设置为false,第二次就不会再进这个代码块了
}
return map;
Hier ändern wir nur den in der Karte festgelegten Wert. Dieser Wertesatz ist eine Sammlung von String-Arrays. Tatsächlich ändern wir nur die Elemente im String-Array. Ich habe das Gefühl, dass es nicht nötig ist, den Eintragssatz herauszunehmen und ihn zu durchlaufen. Sie können den gleichen Effekt erzielen, indem Sie einfach die Werte herausnehmen und ihn durchlaufen. Ich habe es selbst geübt und meine Vermutung bestätigt. Aber fast alle Informationen, die ich im Internet sehe, durchlaufen EntrySet. Warum ist das so? Gibt es Lücken beim bloßen Durchlaufen der Wertesatzwerte? Ich hoffe, dass die Experten die Verwirrung aufklären können!
你的意思是这样吧:
我觉得没啥不可以的呀。
完全没有必要,见Tomcat的SetCharacterEncodingFilter的源码