JSP 왜곡 코드를 해결하려면 먼저 JSP 왜곡 코드의 원인을 이해해야 합니다.
1. 서버를 설정하고 MYSQL을 설치할 때 이 인코딩이 웹 페이지와 일치하지 않으면 인코딩을 선택하라는 메시지가 표시됩니다. JSP 페이지가 깨질 수 있습니다.
2. PHPMYADMIN 또는 mysql-front와 같은 시스템에서 데이터베이스를 생성할 때 인코딩을 선택하라는 메시지가 표시됩니다. 이 인코딩이 웹 페이지와 일치하지 않으면 JSP 페이지가 깨질 수도 있습니다.
3. 테이블을 생성할 때 인코딩을 선택하라는 메시지가 표시됩니다. 이 인코딩이 웹 페이지 인코딩과 일치하지 않으면 JSP 페이지가 깨질 수도 있습니다.
4. 테이블을 생성할 때 필드를 추가할 때 인코딩을 선택할 수 있습니다. 이 인코딩이 웹 페이지의 인코딩과 일치하지 않으면 JSP 페이지가 깨질 수도 있습니다.
5. 사용자가 제출한 JSP 페이지의 인코딩은 데이터를 표시하는 JSP 페이지의 인코딩과 일치하지 않습니다. 이로 인해 JSP 페이지가 확실히 왜곡될 수 있습니다.
예를 들어, 사용자가 데이터를 입력하는 JSP 페이지는 big5 코드에 있지만 사용자 입력이 표시되는 JSP 페이지는 gb2312에 있습니다. 이로 인해 JSP 페이지가 100% 깨집니다.
6. 문자 집합이 잘못되었습니다.
1. 일부 웹사이트에서 일반적으로 볼 수 있는 텍스트에는 여러 가지 인코딩이 있을 수 있습니다. 예를 들어 중국어 번체 문자를 보면 big5 인코딩일 수도 있고, utf-8 인코딩일 수도 있고, gb 인코딩일 수도 있습니다. 즉, 간체자로 인코딩된 번체 한자가 있고, 번체로 인코딩된 간체자도 있다는 것을 이해해야 합니다.
중국어 간체 인코딩으로 웹페이지를 제작하는 경우 인코딩은 GB2312로 설정됩니다. 홍콩, 대만 방문자가 중국어 번체 정보를 제출할 경우 코드가 깨질 수 있습니다. 해결 방법은 (1) 웹사이트 인코딩을 utf-8로 설정하는 것입니다. (2) 홈페이지를 장기간 운영하여 오래된 데이터가 많아 중국어 간체 설정을 변경할 수 없는 경우 페이지 설정을 권장합니다. GBK로 인코딩합니다.
GBK와 GB2312의 차이점은 GBK가 GB2312보다 더 많은 문자를 표시할 수 있다는 점입니다. 일반 문자를 단순화된 코드로 표시하려면 GBK만 사용할 수 있습니다.
7. MYSQL 데이터베이스에 대한 JSP 연결 문에 지정된 인코딩이 올바르지 않습니다.
8. JSP 페이지에서 데이터 제출을 위한 인코딩을 지정하지 않으면 코드가 깨질 수 있습니다.
따라서 JSP 코드가 깨지는 이유는 위와 같습니다. 이유를 알고 나면 JSP 깨짐을 해결하는 것이 훨씬 쉽습니다. 코드를 하나씩 표현해 보겠습니다.
1. MySQL 설치 코드를 변경할 수 없는 경우 많은 친구들이 웹 사이트를 구축하기 위해 가상 호스트를 구입하지만 다음 단계가 정확하다면 이 단계를 건너뛸 수 있습니다. 잘못된 코드 문제는 여전히 해결될 수 있습니다.
2. 데이터베이스 인코딩을 수정합니다. 데이터베이스 인코딩이 잘못된 경우: phpmyadmin에서 다음 명령을 실행할 수 있습니다. ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
위 명령은 테스트 데이터베이스의 인코딩을 utf8로 설정하는 것입니다.
3. 테이블의 인코딩을 수정합니다. ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
위 명령은 테이블 카테고리의 인코딩을 utf8로 변경하는 것입니다.
4. 필드의 인코딩을 수정합니다.
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
위 명령은 테스트 테이블의 dd 필드 인코딩을 utf8로 변경하는 것입니다.
5. 이 상황이 해결하기 쉽다면 페이지를 확인하고 소스 파일의 문자 세트를 수정하면 됩니다.
, // 이것이 맞다면 문제가 없을 것이다.
6. 이 경우 페이지 문자셋을 수정할 수도 있습니다.
7. 데이터베이스에 연결하기 위한 JSP 문에서,
private String url="jdbc:mysql://localhost/"+DB_NAME+" user="+LOGIN_NAME+"&password="+LOGIN_PASSWORD+"&characterEncoding=GBK" //키는 CharacterEncoding에 따라 다릅니다.
8. 문자가 왜곡된 경우 페이지 시작 부분에 request.setCharacterEncoding("GBK")을 추가하면 됩니다.
참고: 위 방법에 따라 수정한 후에는 새로 삽입된 데이터만 확인할 수 있습니다. 예를 들어, 사용자가 제출한 데이터가 BIG5인데 위의 방법을 사용하여 GB2312 웹 페이지에 올바르게 표시되도록 변경하려는 경우 이러한 종류의 텍스트 코드는 불가능합니다. 변환은 다른 프로그램을 작성해야만 해결할 수 있습니다. WEB745 .com 기타 관련 기사를 참조하세요.
요약: 먼저 JSP 왜곡 문자가 데이터베이스에 삽입된 후 왜곡되었는지, 아니면 JSP 페이지가 제출된 직후 왜곡되었는지 여부를 확인해야 합니다. 문자셋이 잘못되어 있는 것 같은데, request.setCharacterEncoding이 추가되지 않았습니다. ("GBK")
데이터베이스 문제라면 위의 2, 3, 4번 방법을 참고해주세요.
인코딩 문제일 수도 있습니다. 이렇게 데이터베이스에 연결해 보세요.
jdbc:mysql://localhost:3306/xxxx useUnicode=true&characterEncoding=UTF-8
작동하는지 확인하세요