Mehrere Lösungen für verstümmelte Java-Zeichen:
1. Verstümmelte Zeichen erscheinen, wenn Daten über get im Servlet an den Server übergeben werden; Analyse: Definieren Sie eine Namensvariable in der doGet-Methode, um die im Server gekapselten Clientdaten userName zu erhalten, weisen Sie dann den Namen dem Byte-Array Bytes in der Form „ISO8859-1“ zu und verwenden Sie schließlich das Byte-Array in der Form UTF-8 Weisen Sie einer neu erstellten String-Variablen newName einen Wert zu. Zu diesem Zeitpunkt sind newName die Daten, die normalerweise angezeigt werden können. Der Grund, warum dies so problematisch ist, liegt darin, dass es keine direkte Möglichkeit gibt, es in einer Codezeile zu lösen . Sie können diese Methode als feste Verwendung betrachten.
2. Verstümmelte Zeichen erscheinen, wenn Daten per Post im Servlet abgerufen werden.
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("userName"); byte[] bytes = name.getBytes("ISO8859-1"); String newName = new String(bytes,"UTF-8"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
Analyse: Das Problem der verstümmelten Übermittlung ist sehr einfach: req.setCharacterEncoding („UTF -8“); Diese Codezeile, aber bitte beachten Sie, dass dieser Satz vor dem Abrufen der Daten platziert werden muss.
3. Wenn das Servlet Daten über den Server antwortet, müssen Sie beachten, dass die beiden oben genannten Methoden vor der Ausgabemethode geschrieben werden müssen , die beiden Die Methode hat den gleichen Effekt, da Methode eins einfacher ist und häufig verwendet wird.
4. Verstümmelte Zeichen erscheinen, wenn HTML- oder JSP-Seiten auf dem Client angezeigt werden.
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //注意:post方式提交数据的乱码解决方式,放在getParameXXX方法之前 req.setCharacterEncoding("UTF-8"); //得到前台input框中name="username"和password="password"的value值 String username = req.getParameter("username"); String password = req.getParameter("password"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
Weitere Java-Kenntnisse finden Sie in der Spalte
Java Basic Tutorial.
Das obige ist der detaillierte Inhalt vonMehrere Lösungen für Probleme mit verstümmeltem Code in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!