Git 한글 깨짐 문제

HOSEON YOO·2023년 9월 24일
1

개요

git status 로 변경된 한글파일들이 있는지 확인하려고 하는데...

띠용?????? 한글 깨짐 문제 발생...

해결 방법

core.quotepath false

git config --global core.quotepath false

core.quotepath [true(기본값) / false]

공식문서 확인해보면 아래와 같이 설명되어있다.

  • true(기본값)
    • 경로 이름에 특이한 문자(unusual character) 앞에는 \(backslash) 를 달아준다.
    • unusual character
      • C escapes control characters (\t for TAB, \n for LF, \ for backslash)
      • bytes with values larger than 0x80
  • false
    • bytes with values larger than 0x80을 unusual character로 간주하지 않는다.
  • 공통사항
    • Double-quotes, backslash and control characters are always escaped regardless of the setting of this variable
    • A simple space character is not considered "unusual"

Git은 기본값으로 core.quotepath = true 이다. 0x80보다 높은 한글은 특이한 문자(unusual character)로 간주되서 앞에 \ (backslash) 를 달아준다.

그렇다면 왜? \354\225\210\353\205\225

UTF-8 구조

한글 UTF-8 Code Point 에 따르면 안(U+C548), 녕(U+B155)으로 표현된다.

안(U+C548) UTF-8 인코딩 방식

  1. 이 문자는 U+0800 ~ U+FFFF 사이의 영역에 있으므로, 표에 따라 1110xxxx 10xxxxxx 10xxxxxx 형식으로 인코딩된다.
  2. 16진수 C548은 2진수 1100 0101 0100 1000와 같다.
  3. 이 비트들은 순서대로 x로 표시된 비트에 들어간다.(11101100 10010101 10001000)
  4. 이 문자는 3바이트로 인코딩된다. (8진수로 표시하면 354(011 101 100) 225(010 010 101) 210(010 001 000))

결과적으로 한글 깨짐 숫자는 "안녕"을 8진수로 표현한 것이다.

참고자료

profile
안녕하세요~ 👋, 대한민국 개발자 유호선입니다.

0개의 댓글