작성
·
610
1
안녕하세요 추후 강의 출시 기다리다가 제가 언리얼과 서버와 연동작업을 공부 중입니다.
현재 Protobuf 송/수 신 등 작업처리 중인데
ClientPacketHandler.cpp
부분에서 S_LOGIN 패킷에서
auto player = loginPkt.add_players();
player->set_name(u8"DB에서긁어온이름2");
이부분의 u8 스트링이 언리얼에서는 L"DB??????????????????????????????2" 로 수신이 되는데.. 어떤방식으로 처리해야 할까요 ? 조언 부탁드립니다 !
답변 2
1
답변 감사합니다 ! 변환하니 잘 됩니다 ! 궁금하실 분들 위해 답변 달아둡니다 !
Protocol::Player p = loginpkt.players(0);
FString PlayerName(UTF8_TO_TCHAR(p.name().c_str()));
1
언리얼에선 UTF16을 사용하는데
C++서버에선 utf8로 해서 불일치가 일어나는 것으로 보이는데요.
언리얼에서도 패킷을 받은 후 UTF8->UTF16으로 한번 변환한 다음 저장이 필요할 것으로 보입니다.
실제로 이전 프로젝트에서도 utf8로 저장해서 그런 변환 작업을 했던 기억이 있습니다.