Linux R에서 사용하는 기본적인 인코딩 셋은 UTF-8 이다. 하지만, 엑셀은 CP949 이다. DB 엔진은 EUC-KR이다. 이런 경우는 매우 특수한 경우인데, 데이터 마이그레션 과정중에서 CP949인코딩 셋 데이터를 변환하지 않고, EUC-KR에 잘못 넣으면, 내역이 아래 그림과 같은 오류가 발생 한다.
> # 한글 인글 인코딩 깨진것 검색 > library(stringr) > library(dbplyr) > Search <- data.frame(text = c("한글 인코딩 깨진것 검색","??????/COMP ????[??]", "equi" )) > Search %>% filter(str_detect(text, "한글")) text 1 한글 인코딩 깨진것 검색
# 오류 내용
> Search %>% filter(str_detect(text, "?")) 에러: Problem with `filter()` input `..1`. ℹ Input `..1` is `str_detect(text, "?")`. x Syntax error in regexp pattern. (U_REGEX_RULE_SYNTAX, context=`?`) Run `rlang::last_error()` to see where the error occurred. > Search %>% filter(str_detect(text, '\\?')) text 1 ??????/COMP ????[??] > localeToCharset() [1] "UTF-8" "EUC-KR"
위의 녹색과 같이 정규화 표현식을 찾아서 걸러 내는 방법이 있다. 일반적으로 많이 쓰이는 기능이니, 이것을 활용 하면 매우 좋다.