인코딩 타입 변경

페이지 인코딩:  euc-kr, ks_c_5601-1987 -> utf-8
사용 툴 : 이클립스

1. pageEncoding / contentType 변경

1. euc, ks, euc-kr,  ks_c_5601-1987 포함된 단어를 전체 페이지에서 검색

        ex) <%@ page contentType="text/html; charset=euc-kr" pageEncoding="euc-kr" %>

2. 검색 결과 탭에서 해당 문장 전체를 복사하여 일괄 변경

       전 : <%@ page contentType="text/html; charset=euc-kr" pageEncoding="euc-kr" %>

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

3. 1 ~3번의 과정을 되풀이 해서 변경
   -> 쌍따옴표를 사용하지않고 따옴표만 사용하는 사용자도 있음 ex) 'euc-kr' 
   -> 화면상에는 스페이스바가 등이 1칸으로 보일 지라도 실제 페이지에는 1개 이상의 스페이스 바를 사용한 페이지도 존재함 (검색 결과 문장을 복사해서 검색 할 것)

4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 과 같은 캐릿터 타입 선언 태그가 없으면 추가

5. RedUTF8.exe 과 같은 툴을 이용해서 파일 인코딩을 utf-8로 변경

RedUTF8.exe


6. 반드시 코드 상의 pageEncoding 타입 또는 html 태그의 charset=euc_kr 등의 값을 먼저 utf-8 로 변경 후 파일의 인코딩 타입을 utf-8로 변경. 파일의 인코딩을 먼저 변경시 코드내의 한글 문자열등이 깨질 수 있음


2. 팝업 페이지로 한글 전달시 깨질때
    encodeURI() 사용


3. java 단에서 변수등에 사용한 한글 값이 깨질때
-> 빌드 상태 체크
     해당 class 파일을 디컴파일 해서 한글이 깨져있는지 확인 


4. 폼 데이터 전송 한글 깨짐
    http://msfury.tistory.com/63?srchid=BR1http%3A%2F%2Fmsfury.tistory.com%2F63

A 서버에서 form 데이터를 B서버로 전달

B 서버에서 request 전달 값을  받을시 한글 깨짐

A 서버 : utf-8

B 서버 : euc-kr

// A 서버 쪽 파일을 수정


< form name="fm" method="POST" action="" accept-charset="euc-kr">

/* form 데이터 전송전 셋팅된 캐릿터셋 임시 변수에 저장 후

 * 페이지 인코딩을 euc-kr로 변경

 * form 데이터 전송 후 

 * 페이지 인코딩 값을 임시 변수에 저장한 케릭터 셋으로 원복

 */

var defCharset=document.charset;

function doSubmit() {

    if (/MSIE/.test(navigator.userAgent)) {

         document.charset = 'euc-kr';

    }

    document.fm.submit();

    document.charset=defCharset;

}

+ Recent posts