• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

u8 한글 문자열 관련 질문 드립니다 !

22.01.17 15:58 작성 조회수 469

1

안녕하세요 추후 강의 출시 기다리다가 제가 언리얼과 서버와 연동작업을 공부 중입니다.

 

현재 Protobuf 송/수 신 등 작업처리 중인데

 

ClientPacketHandler.cpp

부분에서 S_LOGIN 패킷에서 

auto player = loginPkt.add_players();

player->set_name(u8"DB에서긁어온이름2");

이부분의 u8 스트링이 언리얼에서는 L"DB??????????????????????????????2" 로 수신이 되는데.. 어떤방식으로 처리해야 할까요 ? 조언 부탁드립니다 !

답변 2

·

답변을 작성해보세요.

1

An Jungmo님의 프로필

An Jungmo

질문자

2022.01.18

답변 감사합니다 ! 변환하니 잘 됩니다 ! 궁금하실 분들 위해 답변 달아둡니다 !

Protocol::Player p = loginpkt.players(0);

FString PlayerName(UTF8_TO_TCHAR(p.name().c_str()));

1

언리얼에선 UTF16을 사용하는데
C++서버에선 utf8로 해서 불일치가 일어나는 것으로 보이는데요.
언리얼에서도 패킷을 받은 후 UTF8->UTF16으로 한번 변환한 다음 저장이 필요할 것으로 보입니다.
실제로 이전 프로젝트에서도 utf8로 저장해서 그런 변환 작업을 했던 기억이 있습니다.