Преглед изворни кода

파일 인코딩 관련 서비스 추가

jsshin пре 4 година
родитељ
комит
f49c8ea8d5
1 измењених фајлова са 35 додато и 2 уклоњено
  1. 35 2
      src/main/java/com/style24/core/biz/service/TscKcpService.java

+ 35 - 2
src/main/java/com/style24/core/biz/service/TscKcpService.java

@@ -22,6 +22,8 @@ import com.style24.persistence.domain.Payment;
 
 import lombok.extern.slf4j.Slf4j;
 
+import java.lang.reflect.Field;
+import java.nio.charset.Charset;
 import java.util.HashMap;
 
 @Service
@@ -400,14 +402,14 @@ public class TscKcpService {
 		siteKey = "4aVa--.Xz8Fc78nwYPsrmmY__";
 
 		String tranCd = "00100000";
-		
+		// 파일 인코딩 EUC-KR 변경
+		setFileEncoding("EUC-KR");
 		J_PP_CLI_N c_PayPlus = new J_PP_CLI_N();
 		c_PayPlus.mf_init( "", pgUrl, pgPort, 0, env.getProperty("pg.kcp.log.dir") );
 		c_PayPlus.mf_init_set();
 
 		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
 		String custIp = request.getRemoteAddr();
-		//String custIp = custAccount.getIpAddress();
 		String ordNo = String.valueOf(custAccount.getOrdNo());
 		String bankCode = custAccount.getBankCd();
 		String accountNo = custAccount.getAccountNo();
@@ -447,6 +449,8 @@ public class TscKcpService {
 		result.set("resCd", c_PayPlus.m_res_cd);										// 결과 메시지
 		result.set("resMsg", c_PayPlus.m_res_msg);										// 결과 메시지
 		result.set("res_en_msg", c_PayPlus.getRecvMsgOfKey("res_en_msg"));				// 결과 메시지(영문)
+		// 파일 인코딩 UTF-8 변경
+		setFileEncoding("UTF-8");
 
 		return result;
 	}
@@ -526,4 +530,33 @@ public class TscKcpService {
 
 		return result;
 	}
+
+	/**
+	 * 파일 인코딩 설정
+	 * JDK 1.9에서는 작동 안하는것 같음
+	 * @param encoding - EUC-KR, UTF-8
+	 * @author jsshin
+	 * @since 2021. 06. 21
+	 */
+	private void setFileEncoding(String encoding) {
+		log.info("file.encoding Before: {}", System.getProperty("file.encoding"));
+		System.setProperty("file.encoding", encoding);
+		Field charset;
+		try {
+			charset = Charset.class.getDeclaredField("defaultCharset");
+			charset.setAccessible(true);
+			charset.set(null, null);
+		} catch (NoSuchFieldException e1) {
+			e1.printStackTrace();
+		} catch (SecurityException e1) {
+			e1.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		}
+		log.info("file.encoding After: {}", System.getProperty("file.encoding"));
+	}
+
 }
+