=================================
=================================
=================================
출처: http://blog.naver.com/PostView.nhn?blogId=sdragoon&logNo=150133111101
Unity PC(Editor)상에서는 문제없이 한글로 인코딩 되는 문제가,
모바일 운영체제로 가면 안되는 문제가 발생한다.
이 문제를 해결하는 방법은 인코딩과 관련된 dll을 Plugins폴더로 복사하면 된다.
해당 dll은
유니티 설치 폴더인 Unity\Editor\Data\Mono\lib\mono\unity에 있으며,
파일 이름은 [ I18N.dll ], [ I18N.CJK.dll ]이다.
이 둘을 복사하면 아래와 같이 인코딩 값을 가져올 수 있다.
Encoding enkr = Encoding.GetEncoding(51949);
ex)
Encoding enkr = Encoding.GetEncoding(51949);
byte[] temp = Encoding.Convert(enkr, Encoding.UTF8, message);
szMessage = Encoding.UTF8.GetString(temp);
[출처] Unity 모바일 한글 Encoding 사용하기.|작성자 잇츠미
=================================
=================================
=================================
byte[]로 한글을 받았습니다. 한국 서버에서 문자 처리는 949입니다.. 바이트로 받은 것을 변환 해야하는데 다음과 같습니다. Encoding.GetEncoding(949).GetString(bta); 유니티에선 잘 됩니다. 그런데 기기에서는 에러가 납니다. 로그를 보니 System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NotSupportedException: CodePage 949 not supported 949를 지원하지 않는다고 하네요..;; 그런데 이런 코드를 다른 프로젝트에서도 쓰고 있고 문제 없이 서비스 중 입니다. 뭐가 문젠걸까요??? 추가 테스트 결과 정상 작동 중인 서비스 버전과 작업중인 테스트 버전에서 동일하게 50바이트를 받았을 때 서버가 동일한 패킷을 보내주고 받았습니다.(문자열) 185_228_193_224_191_181_181_251_186_192_0 //이후는 전부 00 하지만 문자로 변환 하는 부분. System.Text.Encoding.GetEncoding(949).GetString(바이트 버퍼, 0, 길이); 여기서 에러가 나네요.. |
-------------------------------------------------------------------------------------------------------------------------------------------------------
해결 했습니다.
I18N.CJK.dll
이 없었습니다.
=================================
=================================
=================================
'게임엔진관련 > 유니티 엔진' 카테고리의 다른 글
[Unity] 유니티 오브젝트 생성과 삭제 관련 (0) | 2019.05.20 |
---|---|
[Unity] 유니티 모바일 디버그 디버깅 관련 (0) | 2019.05.16 |
[Unity] 유니티 이미지, 이미지 path, 스프라이트 불러와 넣기 등등 관련 (0) | 2019.05.16 |
[Unity] 유니티 카메라 구성, 3D, 2D 구성 관련 (0) | 2019.05.11 |
[Unity] 유니티 오브젝트 구성 겹칠때 안보여야할 안쪽오브젝트 비추는 현상 또는 깨지는현상 Material 옵션수정 관련 (0) | 2019.05.04 |
댓글 영역