ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • dbc 파일 인코딩 (encoding)
    tip 2025. 8. 26. 17:31

     

    • dbc 파일에 메시지나 신호에 관한 설명을 comment 칸에 한글로 입력하는 경우가 있다.

    CANdb++에서 한글로 커멘트를 입력한다.

    • dbc 파일을 cantools 같은 툴로 xlsx 파일로 변환하는 경우가 있다. 
    • cantools의 dbc 파일의 기본 인코딩 CP1252이다. 
    CP1252는 마이크로소프트 윈도우의 레거시 환경에서 영어, 프랑스어, 독일어 등 서유럽 언어를 지원하기 위해 사용되는 단일 바이트 문자 인코딩(코드 페이지)입니다. ISO 8859-1과 일부 호환되지만, 몇몇 문자인코딩이 다릅니다. - 위키피디아
    • cantools에서 dbc 파일을 읽어서 xlsx 파일로 변환하여  Excel에서 보면 글자가 깨져서 표시된다.

    cantools로 변환한 dbc 파일의 한글이 Excel에서 깨져서 표시된다.

     

    • 해결은 간단하다. dbc 파일을 텍스트 에디터인 Notepad++ 열면 인코딩을 확인할 수 있다. EUC-KR로 인코딩 되어있다. 
    EUC-KR은 'Extended Unix Code for Korean'의 약자이며, 한글 완성형(KS X 1001, 과거 KSC5601) 표준을 기반으로 2,350개의 한글 음절, 4,888개의 한자, 특수문자 등을 2바이트로 인코딩합니다.

    dbc 파일은 EUC-KR로 인코딩 되어있다.

    • cantools로 dbc 파일을 열 때, encoding을 EUC-KR로 설정하면 된다.
        db = cantools.database.load_file(dbc_input, encoding='EUC-KR')
    • 나는 이걸 모르고 encoding='UTF-8'으로 해서 새로운 것을 배울 기회를 얻었다. 배움에는 시간이 들었다. :-)  
    UTF-8은 전 세계 모든 문자를 표현할 수 있는 가변 길이 유니코드 문자 인코딩 방식으로, 현재 웹과 다양한 시스템에서 표준으로 가장 널리 사용됩니다. 1~4바이트를 사용해 문자를 인코딩합니다. 영문 ASCII 문자(U+0000~U+007F)는 1바이트, 한글이나 한자 등은 주로 3바이트, 그 밖의 특수 문자는 2~4바이트로 표현합니다.
    • 참고로 encoding을 UTF-8으로 하면 (Notepad++에서 dbc 파일을 열고, Encoding을 UTF-8으로 변환해야 한다.) Excel에서 한글이 깨지지 않고 잘 표시된다. 

    Notepad++에서 dbc 파일을 열고 메인 메뉴/Encoding/ Convert to UTF-8을 선택하여 인코딩을 변경할 수 있다.
    UTF-8으로 인코딩된 dbc 파일을 cantools로 변환하면, Excel에서 한글이 깨지지 않고 잘 표시된다. 단, cantools에서 Encoding을 UTF-8으로 맞춰줘야 한다.

    • UTF-8으로 인코딩된 dbc 파일을 CANdb++에서 열면, 한글이 깨져서 보인다.

    UTF-8으로 인코딩된 dbc 파일을 CANdb++에서 열면 한글이 깨져서 보인다.

    • TSMaster도 CANdb++와 동일하다.

    TSMaster EUC-KR 인코딩의 경우: 한글이 잘 표시된다.

     

    TSMaster UTF-8 인코딩의 경우: 한글이 깨져서 표시된다.

     

    결론

    • dbc 파일의 인코딩은 EUC-KR이다.

    'tip' 카테고리의 다른 글

    dbc2xlsx  (3) 2025.08.29
    dbc 파일에서 바이트 오더와 스타트 비트 위치와 LSB  (1) 2025.08.27
    xlsx2dbc  (1) 2025.08.22
    YouTube: 미니프로그램에서 엑셀 파일 다루는 방법  (0) 2025.08.19
    라이선스 업데이트  (3) 2025.07.10