Mfc 문자 집합 멀티바이트일 때 c# usercontrol - webview2 post

안녕하세요.

현재 mfc 프로젝트에서 c# webview2가 포함된 UserControl dll을 호출해서 사용하고 있습니다.
webview2에 post를 하기 위해 NavigateWithWebResourceRequest를 이용하고 있는데요.

이틀동안 테스트하면서 알아낸 것은 mfc 프로젝트 속성에서 문자 집합을 설정 안 함, 유니코드 사용시에는 body 부분에 데이터가 문제없이 포함되어 서버로 전송되는 것을 확인했습니다.

그러나 mfc 프로젝트의 문자 집합을 멀티바이트로 설정시 body에 값이 포함되지 않고 서버로 전송된 것으로 확인이 되었습니다.

그래서 윈도우 레지스터리에서 (컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage - OEMCP) 를 949 → 65001로 변경하고 재부팅 후 webview2 post를 진행했는데 정상적으로 포함이 돼서 전송됐더라구요.

레지스터리를 바꾸지 않고 멀티 바이트 프로젝트에서 body를 담아 보낼 수 있는 방법을 알 수 있을까요?
아니면 관련 정보라도 알려주시면 감사하겠습니다.

헤더에는 아래와 같이

body는 Encoding.utf8로 스트림으로 저장합니다.

Encoding을 여러가지로 바꾸고 GetEncoding(949)로 담아서 해봤는데도 동일했습니다.

[C#] Webview2 API POST 하기 (tistory.com)

좋아요 1

mfc쪽에서 unicode설정을 하시거나
multibytetowidechar 이용해서 변환해서 쏘세요.
이게 가장 심플하고 정확한 방법입니다.

좋아요 2

다른 원인을 찾은 것 같습니다.

NavigateWithWebResourceRequest 후에 source를 호출하니 body에 값이 담기는 것으로 확인 되었습니다.

좋아요 1

답변 감사드립니다!
다른 원인을 찾은 것 같습니다 ㅎㅎ

좋아요 1