VS2012 중국어 버전 환경에서 중국어를 지원하지 않는 cocos2dx 문제 해결

1962 단어 cocos2dx
우선 명확한 점은 코코스2dx는 중국어를 지원한다는 것이다.인코딩 형식이 UTF-8 (서명 없음) 이기 때문에, 이것은 내가 인터넷에서 찾은 결론일 뿐, 공식적으로 얻은 것이 아니기 때문에, 확실하지는 않지만, 틀림없을 것이다.
그렇다면 왜 VS2012 환경에서cocos2dx는 중국어를 정확하게 표시할 수 없습니까?
양자 인코딩 형식이 일치하지 않기 때문이다.VS2012 중국어 버전의 기본 인코딩 형식은 GB2312-80입니다. (영문 버전의 형식이 어떤지 확실하지 않습니다. 어쨌든 UTF-8은 아닐 것입니다.)GB2312-80 인코딩 형식에서는 한 중국어가 2바이트를 차지하고, UTF-8 형식에서는 한 중국어가 3바이트를 차지한다.이 경우 반드시 난장판이 발생할 것이다.
원인을 찾으면 방법이 매우 명백해진다.현재 나는 비교적 간단한 두 가지 방법을 찾았다.원본 파일의 인코딩 형식 바꾸기;2.cocos2d-x 프로그램으로 하여금 UTF-8(서명 없음) 형식의 텍스트에서 중국어 문자를 읽게 한다.구체적인 방법은 다음과 같습니다.
1. 원본 파일의 인코딩 형식 변경
VS2012 중국어 버전은 원본 파일의 기본 인코딩 형식을 직접 수정하는 방법을 제공합니다. 파일 -> 고급 저장 옵션을 선택한 다음, 그 안에서 유니코드로 인코딩하기 (UTF-8 서명 없음) 를 선택하십시오.이후에 이 원본 파일은 UTF-8 형식의 인코딩이므로 자연히cocos2d-x를 정확하게 해석할 수 있다.또한 코코스런-pandroid를 사용하여 안드로이드에서 실행해도 중국어를 정확하게 표시할 수 있음을 실험으로 증명하였다.
2. 파일에서 중국어 문자 읽기
인터넷에서 자료를 찾아보면 대부분 이런 방법을 추천한다.FileUtils의 단일 예제 객체를 사용하여 텍스트 파일, 목록 파일을 읽을 수 있습니다.getValueVectorFromFile, getValueMapFromFile, getStringFromFile 등 방법으로 텍스트 내용을 쉽게 추출할 수 있습니다.읽을 파일의 인코딩 형식을 UTF-8(서명 없음)로 설정하면 중국어를 정확하게 얻을 수 있습니다.
TIPS: 중국어 문자열에서 단일 중국어 문자를 가져오는 방법은?
일반 문자열을 옮겨다니듯이 중국어 문자열을 옮겨다니기도 한다.이때 일반적인 스트리밍 방법을 사용할 수 없다. 이것은 중국어가 세 바이트를 차지하기 때문이다. 읽을 때 네 바이트를 준비해서 저장해야 한다. 마지막 바이트는'\0'이기 때문에 중국어 문자를 정확하게 읽을 수 있다.코드는 다음과 같습니다.
//buf     
char buf[4] = {0};
memcpy(buf, "  ", 3);
log ("one chinese char: %s", buf);

log 출력:당신

좋은 웹페이지 즐겨찾기