IT WORK/SAP FI and ABAP

[ABAP] 메일 한글 깨짐 처리

Bathildis 2023. 7. 20. 10:09
반응형

Case 1. HTML을 사용하는 경우

<html>
   <head>
	<meta charset="EUC-KR">  <!-- 맞는 charset 타입을 넣어준다. -->
   </head>
  <body> </body>
</html>

** css를 사용하는 경우, meta charset이 무시될 수 있기 때문에 css에 charset을 아래와 같이 선언해준다

@charset "euc-kr";
body {
	font-size: 15px;
}

 

Case 2. 파일 생성 후 파일을 메일로 발송하는 경우


* 메일내용을 담을 파일이름
  CONCATENATE OBJECT SY-DATUM SY-UZEIT '.txt' INTO L_FILE.
  CONCATENATE L_LOCAL_DIR '/' L_FILE INTO L_FILE_NAME.

  CONCATENATE 'subject:' SUBJECT INTO L_SUBJECT
              SEPARATED BY SPACE.

* 파일생성(메일 Content)
  OPEN DATASET L_FILE_NAME FOR OUTPUT IN TEXT MODE.

* 수신자 지정
  CONCATENATE 'to: ' RECEIVER INTO L_CC_MAIL.
  TRANSFER L_CC_MAIL TO L_FILE_NAME.

* 참조자 지정
  LOOP AT MAIL_LIST.
    CLEAR: L_CC_MAIL.
    CONCATENATE 'cc: ' MAIL_LIST-RECEIVER INTO L_CC_MAIL.
    TRANSFER L_CC_MAIL TO L_FILE_NAME.
  ENDLOOP.

  TRANSFER L_SUBJECT TO L_FILE_NAME.

* 인코딩지정
  L_CONTYPE = 'Content-Type: text/plain; charset="ks_c_5601-1987"'.
  TRANSFER L_CONTYPE TO L_FILE_NAME.

* 본문 내용 생성
  LOOP AT CONTENT.
    TRANSFER CONTENT-LINE TO L_FILE_NAME.
  ENDLOOP.
  CLOSE DATASET L_FILE_NAME.

 

Case 3. SMW0에 html 파일을 올리고 해당 파일을 불러와서 메일을 보내는 경우

그냥 <meta charset=UTF-8>만 추가했을 때는 적용되지 않았는데,

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">를 넣으니 UTF-8이 적용되었다.

이 때, html 파일 저장할 때 인코딩을 기본값인 ANSI로 하면 깨진다. 반드시 UTF-8로 저장해야 한다.

반응형