본문 바로가기
게임 이야기/스타크래프트2

xml 형식이 잘못되었습니다.

by LillyLt 2018. 10. 8.


확률.SC2Lib


이걸 받아서 불러오기 시도시 나타나는 현상 입니다.

전 분명 정상적으로 저장했는데 다시 불러 올려면 꼭 저 에러가 뜹니다.


정상 저장인데도 불러올때만 저런 에러가 뜬다?

그러면 저 라이브러리를 뜯어보셔야 합니다.


일단 노트패드++ 같이 내용물을 보기 쉽게해주는 에디터로 

라이브러리 파일을 열어줍시다.



어익후 뭔가 많이보던 xml이네요.

개인적으로 xml이라서 진자 다행이라 생각합니다.


그러면 위 스샷에서 뭔가 이상한거 발견하신분?



저 특수문자 대체 어디서 기어왔을까아아아아아아


심지어 <Name> 태그 내부 내용은 직접 기록한 부분도 아닙니다.


라이브러리로 저장시 지멋대로 들어가는 부분입니다


그럼 저 특수문자가 어디서 왔을까


내용을 보니 "않을 겅우" 문장 부분에서 끊겨 있군요.


그럼 hex 에디터로 해당 분자열의 바이트를 봅시다



UTF-8 문자셋 기준으로 "경우" 라는 문자열이 총 6바이트 분량이군요.


그중에 첫번째[0번] 배열이 "EA" 라는 값입니다.


즉 "경" 이라는 문자가 바이트 단위로 쪼개져서 들어갔습니다.


.........


이젠 주석까지 몇바이트 부분에서 쪼개지는지 계산해서 입력해야하니....?


그럼 라이브러리에서 주석이 대체 몇바이트에서 쪼개져서 들어가는지 계산해 봅시다



음 &apos; 라는 문자열을 그대로 계산하면 52바이트네요.

근데 &apos;는 HTML 특수기호라 변환해줘야하는걸로 아는데..


내가 이런짓가지 해야하나.png


다시 바이트 계산



42바이트...


뭐지 뭔가 아닌거 같은데...


----------


그래서 방법을 바꿨습니다





특수기호 html "&apos;" 무시하고 "...&apos;"도 무시하면


숫자 하나당 1바이트라서 총 29바이트


맨 첨에 "반복 중단 하지 않을 (xEA)" 라는건 다시 계산해보니 29바이트


----------


 끊어질거 같은 위치에 한글을 넣지 맙시다...


그럴려면 아래 규칙을 기억해야한다는건데...


앤터 무시


UTF-8 기준으로 


한글 3바이트


영문,숫자 1바이트


이게 무슨 짓거리야..


그냥 때려치는게 나을거 같습니다.


오류나면 그냥 xml 처럼 열어서 특수문자만 수작업 삭제하는게 정신 건강상 이롭습니다