>  기사  >  웹 프론트엔드  >  html 한자 깨짐 HTML 하이퍼링크 한자 깨짐 문제 분석 및 해결방법_HTML/Xhtml_웹페이지 제작

html 한자 깨짐 HTML 하이퍼링크 한자 깨짐 문제 분석 및 해결방법_HTML/Xhtml_웹페이지 제작

WBOY
WBOY원래의
2016-05-16 16:40:412598검색

Vm의 하이퍼링크 URL은 Get 요청의 매개변수로 중국어로 연결되어야 합니다. 직접 스플라이싱하면 백그라운드 Action의 매개변수 객체에 전달되어 꺼낸 후 왜곡되므로 인코딩한 후 URL에 스플라이싱해야 합니다.
해결책은 Action에 멤버 변수를 추가하여 인코딩된 중국어 매개변수를 저장하는 것입니다. VM 페이지를 렌더링할 때 이 변수의 값을 가져온 다음 하이퍼링크를 연결합니다.

여기서 발생하는 문제는 입니다. java.net.URLEncoder의 encode() 메소드를 호출할 때 지정된 문자 세트 매개변수가 표시되지 않으면 URLEncoder는 기본 문자 세트를 사용합니다. . 이 기본 문자 세트는 Eclipse에서 main() 메소드를 실행하고 Tomcat에서 웹 애플리케이션을 실행할 때 다른 결과를 생성하므로 인코딩 결과에 영향을 미칩니다.

코드 복사
코드는 다음과 같습니다.

/**
* 문자열을 x-www-form-urlencoded로 변환합니다.
* 형식. 이 방법은 플랫폼의 기본 인코딩
*을 인코딩 체계로 사용하여 안전하지 않은 문자에 대한 바이트를 얻습니다.
*
* @param s String 번역하다.
* @deprecated 결과 문자열은 플랫폼의
* 기본 인코딩에 따라 달라질 수 있습니다. 대신 encode(String,String)
* 메서드를 사용하여 인코딩을 지정하세요.
* 번역된 문자열을 @return합니다.
*/
@Deprecated
public static String encode(String s) {
String str = null;
try {
str = encode(s, dfltEncName)
} catch( UnsupportedEncodingException e) {
// 시스템은 항상 플랫폼 기본값을 가져야 합니다
}
return str
}

메서드의 주석에도 그 이유가 명시되어 있습니다. 권장되지 않는 이유는 이 encode(String) 메서드는 플랫폼 문자 집합에 따라 다릅니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.