Java에서 HTML 이스케이프
이 문서에서는 Java에서 HTML 문자 및 기호를 이스케이프 처리하는 방법을 설명합니다. Apache commons-text
및 StringEscapeUtils.escapeHtml4(str)
메소드를 사용하여 Java에서 HTML 기호 및 문자를 이스케이프할 수 있습니다.
HTML 태그를 이스케이프하는 방법
Java 프로그램에서 HTML 태그를 피하고 이스케이프하기 위해 태그와 해당 특성을 식별합니다. <head>
태그가 있다고 가정해 보겠습니다. <
로 시작하고 >
로 끝나는 항목이 특정 시나리오에서 태그가 될 것이라는 것을 알고 있습니다.
따라서 HTML 태그의 이러한 특성을 활용하고 HTML 태그를 이스케이프할 수 있습니다. 더 잘 이해하기 위해 아래의 예를 살펴보겠습니다.
<html lang="en-US">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="https://www.w3schools.com/images/w3schools_green.jpg" type="image/x-icon">
</head>
위의 예에는 <link>
, <HTML>
, <head>
및 <meta>
와 같은 여러 HTML 태그가 있습니다. 이러한 태그는 각각 브라우저에 특별한 의미를 갖는 HTML 태그입니다.
이를 더 잘 이해하려면 웹페이지로 이동하여 페이지를 마우스 오른쪽 버튼으로 클릭하고 검사
를 선택하여 다른 HTML 태그로 구성된 웹페이지의 구조를 볼 수 있습니다.
HTML에서 모든 태그는 <
보다 작고 >
보다 큰 기호로 둘러싸여 있습니다. 따라서 이러한 <
, >
기호에는 특정 의미가 있으며 특정 코드에서 해당 HTML 문자 대신 HTML 엔티티 이름을 사용하는 경우 브라우저는 태그를 숨기지 않고 오히려 해석하는 대신 실제 텍스트를 대체합니다.
따라서 <
를 엔티티 이름 <
로 바꿉니다. 그리고 >
를 엔터티 이름 >
으로 바꿉니다.
<html lang="en-US">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href=" https://www.w3schools.com/images/w3schools_green.jpg " type="image/x-icon">
</head>
이제 HTML 이스케이프에 대해 이해했으므로 Java에서 HTML을 이스케이프하는 방법을 이해하겠습니다.
Java에서 HTML을 이스케이프하는 방법
이 가이드의 시작 부분에서 논의한 것처럼 우리는 타사 서비스인 Apache를 사용할 것입니다. 미국 남서부 원주민 부족의 이름을 딴 소프트웨어 재단입니다.
Apache 개발자는 개발 프로세스를 가속화하기 위해 매우 유용하고 유용한 도구를 도입한 Apache용 소프트웨어를 구축했습니다.
이러한 유용한 도구 중 하나는 문자열에서 HTML을 이스케이프하는 데 사용됩니다. pom.xml
파일에 종속성을 포함하기만 하면 됩니다.
Java에서 StringEscapeUtils
를 사용하기 위해 Commons-Text
종속성 가져오기
StringEscapeUtils
를 사용하려면 commons-text
종속성을 가져와야 합니다.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>3.12</version>
</dependency>
- 이 종속성을 POM에 삽입하고 다음과 같이 진행합니다.
- Java에서 HTML을 이스케이프하기 위해 사용해야 하는 메소드는
StringEscapeUtils.escapeHtml4()
및StringEscapeUtils.unescapeHtml4()
입니다. - Java 컴파일러에서 이 코드를 작성하십시오.
String html = "<html lang=\"en-US\">\r\n"
+ "<head>\r\n"
+ " <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\r\n"
+ " <link rel=\"shortcut icon\" href=\" https://www.w3schools.com/images/w3schools_green.jpg \" type=\"image/x-icon\">\r\n"
+ "</head>";
// This is used to escape html
String escapedOutput = StringEscapeUtils.escapeHtml4(html);
System.out.println(escapedOutput); // printing the output
String html
은 위의 예제 1에서 사용한 HTML 코드 조각입니다.
이 프로그램의 핵심은 이 컨텍스트에서 HTML을 이스케이프 처리하는 StringEscapeUtils.escapeHtml4(html)
입니다. StringEscapeUtils
클래스에는 다른 메소드가 있지만 escapeHtml4()
를 사용합니다.
이제 위에서 언급한 이 코드를 실행하려고 하면 이 기사의 첫 번째 섹션에서 본 이스케이프된 출력을 볼 수 있습니다.
Java에서 이스케이프 처리되지 않은 원본 데이터 가져오기
Apache StringEscapeUtils
의 동일한 클래스를 사용하여 문자열을 원래 형식으로 쉽게 이스케이프 해제할 수 있습니다. 그렇게 하려면 Java 컴파일러에서 다음 코드를 사용해야 합니다.
String html = "<html lang=\"en-US\">\r\n"
+ "<head>\r\n"
+ " <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\r\n"
+ " <link rel=\"shortcut icon\" href=\" https://www.w3schools.com/images/w3schools_green.jpg \" type=\"image/x-icon\">\r\n"
+ "</head>";
String escapedOutput = StringEscapeUtils.escapeHtml4(html);
String original = StringEscapeUtils.unescapeHtml4(escapedOutput);
System.out.println(original);
위의 코드에서 escapeHtml4()
바로 뒤에 StringEscapeUtils
클래스의 unescapeHtml4()
메서드를 사용하여 이스케이프된 데이터를 이스케이프되지 않은 데이터로 변환합니다.
위의 코드를 실행하면 이런 결과가 나옵니다.
<html lang="en-US">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="shortcut icon"
href=" https://www.w3schools.com/images/w3schools_green.jpg " type="image/x-icon"> </head>
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn