sitelink1  
sitelink2  
extra_vars5  
extra_vars6  

그런데 개발환경인 이클립스+톰캣에서는 깨지지 않는다.

그에 대한 Copilot 의 답변을 들어봤다.

 

톰캣 9.0 환경에서 JSP가 한글이 포함된 JS 파일을 import 할 때 한글이 깨지는

문제는 주로 파일의 인코딩 설정 또는 톰캣의 인코딩 설정과 관련이 있습니다.

이 문제를 해결하기 위해 몇 가지 방법을 시도해볼 수 있습니다.

 

### 1. 파일 인코딩 확인 및 설정

먼저, JSP와 JS 파일이 UTF-8 인코딩으로 저장되어 있는지 확인하세요.

 

- Eclipse에서 파일을 열고, `File` > `Properties` > `Resource` 탭에서 인코딩이 `UTF-8`로 설정되어 있는지 확인합니다.

- 필요한 경우, 인코딩을 UTF-8로 변경하고 파일을 다시 저장합니다.

 

### 2. 톰캣의 인코딩 설정

톰캣의 `server.xml` 파일을 수정하여 인코딩 문제를 해결할 수 있습니다.

 

1. `server.xml` 파일 열기: `<TOMCAT_HOME>/conf/server.xml`

2. 다음 Connector 설정에 URIEncoding="UTF-8"을 추가합니다:

   ```xml

   <Connector port="8080" protocol="HTTP/1.1"

              connectionTimeout="20000"

              redirectPort="8443"

              URIEncoding="UTF-8" />

   ```

 

### 3. JSP 페이지의 인코딩 설정

JSP 페이지 상단에 다음과 같은 디렉티브를 추가하여 인코딩을 명시합니다:

```jsp

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

```

 

### 4. 웹 애플리케이션의 인코딩 필터 설정

`web.xml` 파일에 인코딩 필터를 추가하여 모든 요청과 응답에 대해 UTF-8 인코딩을 강제할 수 있습니다.

 

```xml

<filter>

    <filter-name>encodingFilter</filter-name>

    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>

    <init-param>

        <param-name>encoding</param-name>

        <param-value>UTF-8</param-value>

    </init-param>

    <init-param>

        <param-name>ignore</param-name>

        <param-value>true</param-value>

    </init-param>

</filter>

<filter-mapping>

    <filter-name>encodingFilter</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

```

 

### 5. JS 파일의 인코딩 설정

JS 파일이 UTF-8로 인코딩되어 있는지 확인합니다. 이를 위해 텍스트 에디터에서 파일을 열고 저장할 때 UTF-8 인코딩을 사용하도록 설정합니다.

 

### 6. HTML 파일의 인코딩 설정

HTML 파일의 `<head>` 섹션에 다음 메타 태그를 추가하여 인코딩을 명시합니다:

```html

<meta charset="UTF-8">

```

 

위의 방법들을 순서대로 적용해보면서 문제를 해결할 수 있습니다. 각 단계가 적용된 후 한글이 제대로 표시되는지 확인해보세요.

 

위 방법들중 환경과 코드만 적용해보다가 마지막에 별도의 에디터 프로그램으로 파일의 인코딩을 utf-8로 적용했는데 그게 문제더라...

예상으로는 개발환경에서의 파일 저장 인코딩과 개발 환경 구동 서버의 인코딩이 동일하기 때문에 인코딩 오류가 없었던 것 같다. (iso-8859 또는 ms949 일 가능성이 있음)

그런데 배포하여 운영하는 환경에서는 파일 인코딩과 서버의 인코딩이 다르니 당연히 깨지는 현상이 발생한 것이라고 예상된다. (서버는 utf-8 로 설정했다)

 

라고 생각해서 운영의 js 파일을 copy 해서 개발의 js 에 overwrite 하고 개발서버의 서비스를 출력해봤는데... 안깨짐 -0-

이해 할 수 없는 현상이다. ㅜ.ㅜ

개발 환경의 인코딩 처리 프로세스가 운영보다 스마트 한가보다라는 결론으로 끝냈다. ㅎㅎ

어쨌든 한글이 깨지면 copilot 의 답변의 내용은 모두 체크해 봐야 한다.

 

 

 

다음은 Copilot 의 답변을 그대로 캡춰한 이미지이다. (위에 텍스트는 copy & paste 용)

 

2024-07-14 094519.png

 

 

번호 제목 글쓴이 날짜 조회 수
73 [ChatGPT] nginx 에서 jetty 서버로 프록시중 "org.eclipse.jetty.http.BadMessageException: 400: Invalid SNI" 오류 황제낙엽 2024.11.12 167
72 [phind] jetty 와 tomcat 의 차이점 (성능, 사용성, 선호도) 황제낙엽 2024.10.31 237
» jsp 에서 <script> 로 import 한 js 내의 한글이 깨진다 file 황제낙엽 2024.07.14 296
70 Nginx: 413 – Request Entity Too Large file 황제낙엽 2024.02.17 213
69 nginx 설치, 실행, SSL 설정, 프록시 설정 황제낙엽 2024.02.04 129
68 [bard] Nginx로 서브 도메인에 따라 내부의 포트만 다르게 실행중인 웹서버들을 라우팅 황제낙엽 2024.02.01 136
67 [Bing] "Apache"와 "Nginx" 의 차이점 황제낙엽 2024.01.31 246
66 Nginx 에 대하여 황제낙엽 2024.01.18 149
65 "org.apache.tomcat.util.net.SecureNioChannel.getSslEngine()" is null 황제낙엽 2023.06.22 242
64 windows tomcat 에 Let's Encrypt(SSL) 적용 황제낙엽 2023.06.21 285
63 AutoSet PHP 버전 업그레이드 (7.2.10 to 7.4.32) 황제낙엽 2022.10.09 624
62 401 - Unauthorized: Access is denied due to invalid credentials 황제낙엽 2021.08.27 251
61 iis error - Service Unavailable / HTTP Error 503. The service is unavailable. 황제낙엽 2020.09.23 700
60 [Bitnami WAMP] 설치후 PHP 설정 황제낙엽 2020.07.23 201
59 Autoset의 대안 Bitnami WAMP file 황제낙엽 2020.04.01 241
58 HTTP 오류 403.14 - Forbidden file 황제낙엽 2020.03.04 269
57 바인딩 편집 (사이트 바인딩) file 황제낙엽 2020.03.04 220
56 웹사이트에서 여러 도메인을 사용하는 방법 황제낙엽 2020.03.04 153
55 32비트 응용 프로그램 사용 (ASP, C#) file 황제낙엽 2019.10.31 2164
54 [Tomcat 7] org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15 황제낙엽 2019.10.16 462