찾다
JavaJava베이스Java의 잘못된 코드 문제에 대한 몇 가지 솔루션

Java의 잘못된 코드 문제에 대한 몇 가지 솔루션

Dec 21, 2019 pm 03:53 PM
java왜곡된 문자

Java의 잘못된 코드 문제에 대한 몇 가지 솔루션

Java 왜곡 상황에 대한 여러 가지 해결 방법:

1. 서블릿에서 get을 통해 서버에 전달된 데이터를 가져올 때 왜곡된 문자가 나타납니다.

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

분석: 캡슐화된 데이터를 가져오기 위해 doGet 메서드에 이름 변수를 정의합니다. 서버 클라이언트 데이터 userName에서 "ISO8859-1" 형식의 바이트 배열에 이름을 할당하고 마지막으로 이 바이트 배열을 UTF-8 형식의 새로 생성된 문자열 변수 newName에 할당합니다. newName은 정상적으로 작동할 수 있습니다. 표시된 데이터가 이렇게 번거로운 이유는 한 줄의 코드로 해결할 수 있는 직접적인 방법이 없기 때문입니다. 이 방법은 그냥 고정된 사용법으로 간주하면 됩니다.

2. 서블릿에서 post를 통해 서버에 전달된 데이터를 얻을 때 잘못된 문자가 나타납니다.

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

분석: post 전달 모드에서 잘못된 문제를 해결하는 것은 매우 간단합니다. req.setCharacterEncoding("UTF-8) "); 이 코드 줄은 데이터를 얻기 전에 이 문장을 배치해야 한다는 점에 유의하세요.

3. 서블릿이 서버를 통해 클라이언트에 데이터를 응답할 때 왜곡된 문자가 나타납니다.

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

분석: 위의 두 가지 방법은 적용 시 출력 방법 전에 작성해야 합니다. , 두 가지 방법이 동일한 효과를 갖기 때문입니다. 간단하고 일반적인 방법 1입니다.

4. HTML 또는 JSP 페이지가 클라이언트에 표시될 때 잘못된 문자가 나타납니다.

<head>
        <meta charset="UTF-8">
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
        <title>form表单</title>
</head>

더 많은 Java 지식을 알고 싶다면 java 기본 튜토리얼 칼럼을 주목해주세요.

위 내용은 Java의 잘못된 코드 문제에 대한 몇 가지 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구