카테고리 없음

Query 내에서 Encoding 변경하기 (MySQL 기준)

NavyGuy 2021. 6. 2. 15:56

Overview

업무 중에 대외 금융기관과 Encoding을 맞출 일이 있어서 이렇게 방법을 남긴다.

EUC-KR 은 한글 2byte 이고, UTF-8 은 한글 3byte 인데 문자열 길이가 달라서 아래와 같이 확인했다.

 

사용법

MySQL 기준 CONVERT 함수를 아래와 같이 사용한다. 

SELECT CONVERT('메세지' USING 'CharacterSet');

 

테스트

set @target = '안녕하세요 123 ABC' ;

SELECT LENGTH(CONVERT(@target USING 'euckr')) AS LENGTH -- euckr
UNION ALL
SELECT LENGTH(CONVERT(@target USING 'utf8mb4')) AS LENGTH; -- utf8

사용해보기

SELECT 
	u.name
	, LENGTH(CONVERT(u.name USING 'euckr')) as 'euc-kr'
    , LENGTH(CONVERT(u.name USING 'utf8mb4')) as 'utf-8'
FROM User u;

 

Reference

그 외 유용하게 쓰고있는 Encoding 별 사이트를 공유합니다.

 

 

byte checker

◈ 500자 제한의 예 한글을 3byte로 계산하는 경우는 1500byte로 제한 한글을 2byte로 계산하는 경우는 1000byte로 제한 ◈ 1000자 제한의 예 한글을 3byte로 계산하는 경우는 3000byte로 제한 한글을 2byte로 계

trsketch.dothome.co.kr