본문 바로가기
TOY PROJECT/Music Archive V1.0(Spring)

[Mac/MySQL] utf8 설정 / Mac & Window 데이터 방식

by LAY CODER 2020. 10. 14.

 

내 노래 파일들이 있는 fileDTO의 파일명을 불러올 때,

 

한글로 된 트랙들만 오디오 태그로 불러왔을 때, 재생이 안되는 현상을 경험하였다.

 

콘솔창을 확인해보니 한글이 깨지는 현상이 발생하였다.

 

 

 

 

mysql db에 저장할 때 한글이 깨진다고 생각하였고,

 

mysql 캐릭터 셋을 utf8로 바꿔주는 작업을 하였다.

 

구글에 찾아보니 아래와 같이 파일을 복사하라고 나와있다.

 


 

파일 복사

 

$ sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

 

하지만 support-files 디렉토리에 my-default.cnf가 존재하지 않았다.

 

그래서 직접 만들어 주기로 했다.

 

cd  /usr/local/mysql/support-files 로 디렉토리에 접근하여,

 

touch my-default.cnf 를 통하여 cnf 폴더를 만들어 주었다.

 

그 다음 다시,

 

$ sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 실행

 


 

캐릭터셋 추가

 

$ sudo vi /etc/my.cnf 를 입력하고 I 를 입력하여 입력모드로 전환한다.

[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci



init_connect=SET collation_connection=utf8_general_ci

init_connect=SET NAMES utf8



[client]

default-character-set=utf8



[mysql]

default-character-set=utf8

 

를 입력한 뒤 esc 입력 :w 입력 :q! 입력 하여 빠져나온다.

 


 

mysql 재시작

 

터미널에서 다음 명령어를 이용해 mysql을 재시작 한다.

 

  • 켜기 : sudo /usr/local/mysql/support-files/mysql.server start
  • 끄기 : sudo /usr/local/mysql/support-files/mysql.server stop
  • 재시작 : sudo /usr/local/mysql/support-files/mysql.server restart

 

 

캐릭터 셋 부분이 utf8로 변경 되었다.

 

mysql 내에서 특정 데이터 베이스나 테이블의 캐릭터셋을 변경하고 싶은 경우

 

alter database 데이터베이스명 default character set UTF8MB4;

alter table 테이블명 convert to character set UTF8MB4;

 

p.s. 문제는 이렇게 해도.. 오디오태그로 받았을 때 똑같이 깨진다.. 하 mysql 캐릭터셋이 문제가 아닌 거 같다.

 


 

수정

 

아 드디어 한글이 깨지는 이유를 찾았다!

 

가끔 mac에서 window로 파일을 보낼 때 파일명이 자소분리(자음과 모음이 분리) 되어서 보내지는 경우가 있는데,

 

그게 원인인가 해서 찾아보다가 나랑 똑같은 문제를 겪는 사람의 글을 발견하였다.

 

 

 

[Python] Mac OSX에서 파일 업로드시 파일이름 검색 실패 문제 해결 (NFD/NFC 문제)

증상파일을 관리하는 시스템을 개발하고 있는데, Mac OSX에서 파일을 업로드 하면 해당 파일의 이름이 ...

blog.naver.com

 

 

간략하게 말하자면 Mac과 Window의 데이터 방식이 달랐던 것이다!

 

Mac OSX 에서는 NFD(Normalization Form Canonical Decomposition) 방식을 사용하고

 

윈도우 에서는 NFC(Normalization Form Canonical Composition) 방식을 사용한다.

 

이 분이 했던 방식과 같이 나도 서비스Impl에서 파일 업로드 할 때,

 

노멀라이저를 이용해서 방식을 NFC로 바꿔주었다.

 

 

 

 

그랬더니 한글 노래파일도 정상적으로 업로드 되고, 오디오 태그에서 실행되는 걸 확인할 수 있었다!

 

P.S. 하지만 아직까지 띄어쓰기가 되어있는 노래파일은 실행이 되지 않는다..

댓글