trouble shooting

[escape sequence] Mac과 windows yml 차이, expected escape sequence of 8 hexadecimal numbers error

TLdkt 2022. 12. 26. 17:27
728x90
반응형

들어가며

yml에 크롬 드라이버 경로를 그대로 적었더니 에러가 났다. 이외에도 mac과 윈도우 사이에 차이가 있어 yml파일을 그대로 복붙했을 때도 문제가 생긴다는 걸 알게 됐는데, 원리와 해결방법까지 정리해보자

 

에러메세지

에러메세지를 해석해보면

expected escape sequence of 8 hexadecimal numbers라고 나와있다.

 

 

Escape Sequence

우선 escape sequence란 이스케이프 문자를 이용해서 '명령어'처럼 쓰는 문자열을 의미한다.

 

아난너영 <-가 도깨비어로 쓰였다는 걸 모르면

이게 "아 난 너영"인지 "안녕"인지 해석할 수 없으니

'도 아난너영' 이라고 쓴다고 치자.

이때 '도'가 도깨비어의 도인지 그냥 도인지 알 수가 없다.

  

이처럼 스크립트가 문자열이다 보니 그걸 어떻게 해석할지 결정하는 것이 이스케이프 시퀀스라고 생각하면 쉽다.

위 예시에서 '도'처럼 이스케이프 시퀀스는 예약어 '\'를 이용해 구분된다.

'도아난너영'보다 '\도아난너영'이라고 쓰면 \도 이후에는 도깨비어로 해석한다는 약속을 전달할 수 있다. 

 

이처럼, 예약어 \는 아래와 같은 백슬래시인데, 다음 문자가 특수 문자라는 걸 알리는 용도이다 

백슬래시와 함께 문자를 쓰는 예시 중에 대표적으로는 개행, 탭 등등이 있다

이 표에서 볼 수 있다시피, 백슬래시가 나왔기 때문에 뒤에 n인지, t인지 등등에 따라 어떻게 해석해야 할지가 바뀌고, 이번 에러의 경우 \u였으므로 뒤가 유니코드로 해석되어야 했다. 그런데 이후에 숫자가 아닌 문자가 나와서 에러가 생긴 것이다.

 

마치 도깨비어로 해석하라고 적혀 있는데 뒤에 아랍어가 나온 것 같은 황당함이랄까

 

해결

따라서 백슬래시를 일반 슬래시로 변경해주면 에러가 해결된다.

한편, 윈도우는 절대경로로 마지막 실행파일 확장자까지 적어줘야 실행이 된다. 

변경하면 아래처럼 적을 수 있다.

 

 

 

Reserence

https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%8A%A4%EC%BC%80%EC%9D%B4%ED%94%84_%EB%AC%B8%EC%9E%90

 

이스케이프 문자 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 이스케이프 문자는 이스케이프 시퀀스를 따르는 문자들로서 다음 문자가 특수 문자임을 알리는 백슬래시(\)를 사용한다. 일부 제어 시퀀스인 이스케이프 문자

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%8A%A4%EC%BC%80%EC%9D%B4%ED%94%84_%EC%8B%9C%ED%80%80%EC%8A%A4

728x90
반응형