# utf8

20개의 포스트
post-thumbnail

MySql 한글 및 이모지 지원하기

이슈 토이 프로젝트 진행하며, iOS에서 '한글'과 '이모지' 를 입력해도 500 에러가 발생하면서 새로운 Todo 가 만들어지지 않음. 원인을 파악해보니 mysql의 유니코드와 관련이 있었음. 진행 해당 유니코드를 바꾸기 위해 아래의 작업을 진행함. 일단 Terminal을 열고 진행중이던 mysql을 잠시 멈춘다. Status를 확인해보면 characterset이 utf8mb3로 들어가있는걸 확인할 수 있다. 아래의 절차를 통해 utf8mb4로 바꿔주도록 하겠다. Vim을 열어준다. 아래의 script를 작성하고 esc 버튼을 누른다음 :wq 저장하고 종료해준다. 그리고 위의 mysql status 를 확인하게 되면 utf8mb4로 변경된걸 확인할 수 있다. 그리고 여전히 입력되지 않는 이슈가 있어 더 찾아보았다.. DB를 열어서 title과 description의 유니코드-Collation을 확인해보니 **utf8mb4

약 9시간 전
·
0개의 댓글
·
post-thumbnail

DataBase Collation : utf8mb4_unicode_ci 가 의미하는 것

DB연결시 텍스트 데이터를 취급하는 과정에서 Database Encoding과 Database Collation이 있다. 제대로 사용하기 전에 어느 역할을 하는지 알아야하기 때문에, 이 글을 작성하게 되었다. 💻 사용한 DB Tool - Sequel Ace ❓MySQL/MariaDb database management Tool (for MacOS) 설치는 App Store에서 진행 Encoding(인코딩)에 대하여 UTF-8 실생활에서 사용되는 텍스트기반의 데이터를 출력하기 위해서 등장하게 된 케이스 UTF-8 문자 집합은 1~4바이트 까지 저장이 가능하다. ❓Collation(정렬) ![](https://velog.velcdn.com/image

2023년 9월 7일
·
0개의 댓글
·

utf8 설정하기

기존에 생성되어있는 DB, Table 인코딩 수정하기 alter database DBNAME default character set utf8 collate utf8general_ci; alter table TABLENAME default character set utf8 collate utf8general_ci; db 설정 수정하기 설정 확인 show variables like 'c%'; MaraiDB/Data/my.ini 설정 [mysqld] initconnect="SET collationconnection = utf8generalci" init_connect="SET NAMES utf8" character-set-server = utf8 collation-server = utf8generalci [client] default-character-set = utf8 [mysqldump] default-charac

2023년 8월 13일
·
1개의 댓글
·
post-thumbnail

Install MySQL using Docker (feat. 한글)

-e LANG=ko_KR.UTF-8 https://stackoverflow.com/a/66792543 참고) https://poiemaweb.com/docker-mysql https://learn.microsoft.com/ko-kr/visualstudio/docker/tutorials/tutorial-multi-container-app-mysql

2023년 3월 6일
·
0개의 댓글
·

[Spring] Tomcat 한글 깨짐 해결

톰캣을 이용하여 웹 서버를 사용할 때, 간혹 한글이 깨지는 경우가 있다. 그럴때는 톰캣에 인코딩 설정을 해주면 된다. 톰캣의 server.xml 에 있는 Connector 태그에 URIEncoding 을 추가해준다. server.xml

2022년 10월 6일
·
0개의 댓글
·

mysql 텍스트 인코딩 방식 문제

개요 Ubuntu 20.04에 mysql 5.7 설치 후 SCG Ourlim 백엔드 실행하니 초기 엔티티 생성에서 오류 >Error: Column 'type' hs duplicated value '???' in ENUM 해결 같은 SCG내에서 아무도 문제 발생하지 않아 프로젝트 코드의 문제는 아니라고 판단 mysql 설정 문제라고 의심 에러메시지에서 실제 넣으려던 한글 값이 아닌 물음표로 뜨는 것에 집중해 텍스트 인코딩 설정 변경 >latin1 -> utf8mb4 원인 정리 텍스트 인코딩 문제로 모든 한글이 "???"으로 바뀜 모든 한글값이 "???"으로 바뀌며 unique 해야하는 column에서 오류 이것 때문에 2시간 쓴게 말이냐....ㅜㅜ

2022년 8월 20일
·
1개의 댓글
·

[DB] TEXT 타입

MySQL text타입의 종류 > TINYTEXT 256 bytes TEXT 65,535 bytes~64kb MEDIUMTEXT 16,777,215 bytes~16MB LONGTEXT 4,294,967,295 bytes~4GB -> TEXT: 최대 65,535개의 문자의 저장이 가능한 가변 길이 문자형. 필드 설정시 최대 크지 지정 X MEDIUMTEXT: 최대 16,777,215개의 문자 저장 가능한 가변 길이 문자형. LONGTEXT: 최대 4,294,967,295개의 문자 저장 가능한 가변 길이 문자형 -> 행 데이터의 길이가 유일한 차이점 utf8 vs utf8mb3 vs utfmb4 utf8은 uft8mb3의 별칭으로 3바이트 가변 자료형을 뜻함. utf8과 utfmb4의 차이는 emoji 문자 사용 가능 여부 ->utf8에서는 emoji문자 사용 불가이므로 에러 발생 ->utfmb4는 4바이트 가변 자료형으로 emoji 값이 소실되지 않음.

2022년 7월 4일
·
0개의 댓글
·

[JS] UTF-8 변환 이후 BOM 관련 문제

문제 utf-8 변환으로 한글표기를 했을때 text뒤로 알 수 없는 ' '공백이 계속 붙어서 리턴되었다. 원인 분석 소스와 HTML 상으로는 특별한 문제가 없어 보이지만 log를 찍어보니 text뒤에 '\u0000'이란 text가 계속 붙어 나오는 것을 확인 할 수 있었다. BOM(Byte order mark) 때문에 현상이 발생한다고 하는데 BOM이란 바이트 순서 표식으로 유니코드 문자 매직 넘버로서 문서의 가장 앞에 추가하여 텍스트를 읽는 프로그램에 여러 정보를 전달한다고 한다. * 참고 사이트 링크텍스트 해결 utf convert함수 utf2Str 함수 해결 부분

2022년 6월 14일
·
0개의 댓글
·

문자열 - Character encoding

Character Encoding 문자 인코딩, Text Encoding Process of assigning numbers to graphical characters To be stored, transmitted, and transformed using digital computers Encoding "A" 01000001 : ASCII 01000001 : UTF-8 00000000 01000001 : UTF-16 Decoding 01000001 -> "A" ASCII American Standard Code for Information Interchange A -> 01000001 128개의 문자 표현 95개의 출력 가능 문자(영문 알파벳 52개, 숫자 10개, 특수문자 32개, 공백문자 1개) 출력 불

2022년 5월 1일
·
0개의 댓글
·
post-thumbnail

자바 인텔리제이 한글 깨짐 문제 해결

구글에 검색하면 많은 결과가 나온다. File Encoding을 바꾸라 VM 옵션을 추가하라 서버나 안드로이드 앱을 개발하기 위한 다른 라이브러리?를 사용하는 경우(Gradle, Tomcat 등) 그쪽 설정을 만져준다. 다 해봤는데 안 되는 경우가 많았다. 한참을 실랑이하다 드디어 해결했다. File -> Setting -> FileEncoding 에 들어가서 (세팅은 Ctrl+Alt + S 를 이용해서 들어갈 수 있다. 혹은 Shift를 빠르게 두 번 눌러 검색기능을 활용할 수도 있다) 그때 UTF - 8 이 아닌 EUC-KR로 바꿔주면 된다. 안 되면 VM 옵션에서도 한번 해보자. ![](https://velog.velcdn.com/images/antonio129/po

2022년 4월 24일
·
0개의 댓글
·
post-thumbnail

Database | utf8 → utf8mb4 인코딩 변경하기

프로젝트를 배포하기 전 여러가지 테스트를 진행하던 중 텍스트를 입력하는 부분, 예컨대 '자기소개', '팀소개', '채팅' 등에서 이모티콘/이모지 입력이 안되는 오류를 발견하였다. 문제의 원인은 DB의 특정 컬럼 Character Set 이 utf8 로 설정되어 있어서이다. utf8 인코딩이 3 Bytes로 처리되는 반면, 이모지는 65,536 범위를 넘어가서 4 Bytes로 처리되기 때문에 DB에 입력이 안되는 것이다. 문제 해결을 위해 프로젝트에 사용하는 MySql의 데이터베이스, 테이블, 컬럼 에 대한 인코딩 수정을 진행하였다. 오류를 수정하면서 보니, 데이터베이스의 인코딩 설정만 변경한다고 해서 오류가 잡히는 것이 아니었다. DB 자체의 인코딩과 더불어 이모지가 사용될만한 테이블/컬럼에 대한 수정이 필요했다. 또한, 특정 테이블에서는 다르게 맞물려 있는 문제때

2022년 2월 13일
·
0개의 댓글
·
post-thumbnail

MySQL 인코딩 설정(UTF-8) 문제 해결법

문제 식별 및 분석 리액트 프론트엔드에서 회원가입을 위해 스프링 백엔드로 입력된 데이터를 보내 테이블에 데이터를 추가하는 도중 다음과 같은 에러가 발생했다. 아래를 더 살펴보면 mysql에 관련된 예외가 터진것을 확인할 수 있었다. 에러 메시지를 읽어본 결과 인코딩과 관련된 문제가 발생했을 것이라고 예상했다. 다음 두 쿼리를 실행해서 어떤 방식으로 인코딩 설정이 되어있는지 확인한다. 역시 UTF-8이 아니었다. 이제 UTF-8로 변경해야한다. 해결 방법 이 해결 방법은 CentOS7 과 mysql 5.7.36 버전 기준이다.

2022년 1월 8일
·
0개의 댓글
·
post-thumbnail

[MySQL] schema 생성시 collation 설정

MySQL 에서 collation 확인하기 모든 collation 확인 SHOW COLLATION UTF와 관련된 collation 확인 UTF - COLLATIONS utf8mb4 기본적으로 UTF는 가변 길이 encoding 방식이다. MYSQL에서는 UTF8(alias of utf8mb3)의 alias로 설정이 되어 있어서 최대 3 bytes까지만 사용할 수 있다. 모바일이 대중화됨에 다라,대중화 됨에 따라 emoji와 같이 기존에 사용되지 않던 문자들까지 사용하기 위해

2021년 10월 17일
·
0개의 댓글
·

[Mac] git 한글 깨짐 현상 해결 방법

배경 한글명 파일을 git 에 올리려다가 한글 깨짐현상이 발생했다. 처음에는 vscode에서만 그런 줄 알았지만 기본 terminal 에서도 같은 현상이 발생했다.😭😭 원인 한글이나 띄어쓰기와 같이 escapes 문자를 unusual case로 분류한다. 해결방법 core.quotepath를 꺼주면 해결된다.. git의 글로벌 구성파일(config) 내에 core.quotepath=false로 설정해주면 한글깨짐 현상을 해결할 수 있다. git의 글로벌 config는 ~/.gitconfig 이다. > git config --global core.quotepath false https://dev-gp.tistory.com/115

2021년 5월 26일
·
0개의 댓글
·
post-thumbnail

컨테이너 MySQL 한글 인코딩 해결 방법

mysql 한글 인코딩 해결 방법 MySQL 컨테이너 구동 docker exec -it /bin/bash 컨테이너 내부 접속 apt-get update, apt-get install vim (vi editor 없을 시) vim /etc/mysql/my.cnf 파일에 아래의 내용 추가 database 또는 table encoding type 변경 방법 show variables like 'c%'; 문자셋 항목을 조회한다. database 생성 시 character set을 utf-8 로 설정하는 방법 `CREATE DATABASE DEFAULT CHARACTER SET utf8 C

2021년 4월 26일
·
0개의 댓글
·

[Error] DB에 insert가 안될 때는 UTF-8 인코딩을 확인해보자.

혹시 이미 설계되어 있는 DB에 insert가 안된다면 UTF8인코딩 문제일 때가 많다. UTF8로 변경하는 이 코드명령으로 한 번 체크해보자. 또는 테이블 생성시에 처음부터 기본 인코딩을 UTF8로 설정할 수 있다.

2021년 3월 31일
·
0개의 댓글
·
post-thumbnail

[CS] 문자 인코딩 초간단 개념 정리(UTF-8,UTF-16,아스키,유니코드 등)

한번쯤 웹사이트를 돌아다니면서 꿻뷁헬 이런 단어들을 보았을 것이다. 그렇다면 이런 단어들은 왜 나타나는 것일까? 잘은 모르겠지만 인코딩 문제라는데.. UTF8,UTF16,아스키코드,EUCKR은 무엇이며 "아 이렇게 하니 해결이 되네?" 하고 넘어갔던 부분들을 명쾌하게 풀고자 한다. 위와 같은 UTF8,UTF16,아스키코드,EUCKR 개념을 알려면 두가지의 개념을 알아야 한다. 문자표 문자표 인코딩 이 두가지 개념을 알고 있으면 이러한 용어들을 명확하게 정리할 수 있다. 1. 문자표 >문자표는 영어로 Character Set이라고 하며, 문자와 숫자를 일대일 매칭 시킨 표를 문자표라고 한다. 문자표를 알아보기전에 문자표가 나오게 된 배경에 대해 먼저 알아봐야 한다. 배경 우리 컴퓨터가 처음 등장했을 때는 어떤 문자열을 표헌하는 용도 보다는 수학적인 계산을 하는 용도로 쓰이게 되었다. 근데 수학적인 계산을 하고 나

2021년 2월 22일
·
0개의 댓글
·
post-thumbnail

[알고리즘] UTF-8 검증

UTF-8 검증 > UTF-8 초기에 문자를 표현하던 대표적인 방식은 ASCII 인코딩 방식으로, 1바이트에 모든 문자를 표현했다. 게다가 1비트는 체크섬으로 제외하여 7비트, 즉 128 문자를 표현했다. 하지만 이는 부족했고, 이를 해결하기 위해 2~4바이트 공간에 여유있게 문자를 할당하고자 등장한 방식이 바로 유니코드이다. 그러나 유니코드 자체는 1바이트로 표현이 가능한 영문자도 2바이트이상의 공간을 사용하기 때문에 메모리 낭비가 심하다. 이를 해결하기 위해 UTF-8이 등장했다. 시작 비트를 보면 문자의 전체 바이트를 결정할 수 있다. 첫 바이트의 맨 앞 비트를 확인해서 0인 경우 1바이트 문자, 10인

2021년 2월 1일
·
0개의 댓글
·
post-thumbnail

emoji 문자 표현하는 방법[MySQL]

문제 기존 MySQL에 한글 및 다른 언어가 깨지는 것을 처리하려면 character set을 utf8로 설정해야 했었다. 그렇다면 emoji같은 글자들은 어떨까? character set이 utf8인 게시판에 emoji로 된 글을 남겨 보았다. 글자가 깨져 보일 것이다. 문제 발생 이유 UTF-8 은 1~4 Byte까지 저장이 가능하게 설계되어있다.(가변 바이트) 거기서 MySQL은 utf8이 3Byte까지 표현할 수 있다. 하지만 emoji는 4Byte로 되어 있는 문자이다. 3Byte까지 표현할 수 있는 MySQL의 utf8에 4Byte 문자를 표현하려고 하니 손실이 일어나 깨져 보이는 것이다. 해결 이런 문제를 해결하기 위해 MySQL에서 새로운 character s

2020년 1월 20일
·
0개의 댓글
·