파워쉘로 ipc 해보려고
cat -Encoding utf8 원본 | 문자열 처리 | sc -Encoding utf8 결과물
이렇게 만들고 있는데
중간에 문자열 처리하는 부분에서 전달된 문자열을 input 핸들로 읽어올 때 어떻게 해도 유니코드가 0x3f로 깨져서 나옴
foo김개똥bar 면 foo???bar로 나오는데 이걸 어케 해야할지 모르겠음
wmain으로도 바꿔보고 wchar_t도 써보는데 어떻게 해도 읽어들이는 게 0x3f로 나오는데
중간에 문자열 처리를 빼버리고 sc로 바로 넘겨주면 그건 또 되는 걸 보면
GetStdHandle로 Input 핸들 가져와서 그냥 읽어들이는 게 잘못 된건가 싶음
윈도우가 내부적으로 wchar_t를 사용해서 이런건가 어지러워 죽겠다..
원본(UTF8) ---> 문자열처리(Unicode로 변환 --> 문자열 처리(Unicode) --> UTF8로변환) ---> sc 또는 원본(UTF8) ---> 문자열처리(Unicode로 변환 --> ANSI로 변환 --> 문자열 처리(ANSI) --> Unicode로 변환--> UTF8로변환) ---> sc 이런식으로 하면 안되나?
문자열 처리하기 전에 파이프에서 읽는 시점에서 깨져있어서 코드 페이지도 바꿔봤는데 해결이 안됨 콘솔 입력 버퍼에 들어갈 때 이미 그런식으로 변환되는듯
따로 설정안하면 멀티바이트 문자열인거 아님? 그러면 멀티바이트에서 wchar 로 바꾸고 다시 utf-8로 바꿔야 나올것 같음
https://www.google.com/search?q=%EC%85%B0%EA%B3%84+%EC%96%B8%EC%96%B4+utf8+%EC%82%AC%EC%9A%A9
이런게 있긴 함
문제는 당연하게도 해결이 안됐지만
아오 윈도우시치