Maison >Java >JavaBase >Plusieurs solutions aux problèmes de code tronqué en Java

Plusieurs solutions aux problèmes de code tronqué en Java

尚
original
2019-12-21 15:53:482734parcourir

Plusieurs solutions aux problèmes de code tronqué en Java

Plusieurs solutions aux caractères tronqués Java :

1 Les caractères tronqués apparaissent lors de l'obtention des données transmises au serveur via get dans le servlet ; Analyse : Définissez une variable de nom dans la méthode doGet pour obtenir les données client userName encapsulées dans le serveur, puis attribuez le nom au tableau d'octets sous la forme "ISO8859-1", et enfin utilisez le tableau d'octets sous la forme de UTF-8 Attribue une valeur à une variable de chaîne nouvellement créée newName À l'heure actuelle, newName correspond aux données qui peuvent être affichées normalement. La raison pour laquelle cela est si gênant est qu'il n'existe aucun moyen direct de le résoudre en une seule ligne de code. . Vous pouvez considérer cette méthode comme une utilisation fixe.

2. Des caractères tronqués apparaissent lors de l'obtention de données transmises au serveur via la publication dans le servlet

 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 : La résolution du problème tronqué en mode de livraison est très simple, il suffit de req.setCharacterEncoding. ("UTF -8") ; Cette ligne de code, mais veuillez noter que cette phrase doit être placée avant d'obtenir les données.

3. Des caractères tronqués apparaissent lorsque le servlet répond aux données au client via le serveur ;

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);
    }
}

Analyse : notez que les deux méthodes ci-dessus doivent être écrites avant la méthode de sortie lorsqu'elles sont appliquées. , les deux méthodes ont le même effet, car la première méthode est plus simple et est couramment utilisée.

4. Des caractères tronqués apparaissent lorsque des pages HTML ou JSP sont affichées sur le client.

public class RegistServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //方式一:
        resp.setContentType("text/html;charset=utf-8");
        //方式二:
        resp.setHeader("Content-type", "text/html");
        resp.setCharacterEncoding("UTF-8");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doGet(req, resp);
    }
}

Pour plus de connaissances sur Java, veuillez faire attention à la colonne

Tutoriel de base Java

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn