cococos 2 dxがVS 2012中国語版環境で中国語をサポートしない問題を解決する

1911 ワード

まず、cococos 2 dxは中国語をサポートしていることを明確にします.その符号化フォーマットはUTF-8(署名なし)であるため、これは私がネット上で見つけた結論にすぎず、公式から取得したものではないため、十分に確定できないが、間違いないはずだ.
では、なぜVS 2012環境でcococos 2 dxが中国語を正しく表示できないのでしょうか.
これは、両者の符号化フォーマットが一致しないためである.VS 2012中国語版のデフォルトの符号化フォーマットはGB 2312-80(英語版のフォーマットがどうなのか分かりませんが、要するにUTF-8ではないはずです).GB 2312-80符号化フォーマットでは、1つの中国語が2バイトを占め、UTF-8フォーマットでは、1つの中国語が3バイトを占めている.これでは必ず文字化けしが現れる.
原因を見つけたら、方法がはっきりした.今、私は2つの簡単な方法を見つけました:1.ソースファイルのエンコードフォーマットを変更します.2.cocos 2 d-xプログラムにUTF-8(署名なし)形式のテキストから中国語文字を読み込ませる.具体的な方法は以下の通りです.
1.ソースファイルのエンコード形式を変更する
VS 2012中国語版では、ソースファイルのデフォルトの符号化フォーマットを直接変更する方法を提供し、ファイル->高度な保存オプションを選択し、その中でUnicode(UTF-8署名なし)に符号化することを選択します.その後,このソースファイルはUTF-8形式の符号化であり,cocos 2 d-xを正しく解析できるのは当然である.また,cocos run-p androidを用いてアンドロイド上で動作し,中国語を正しく表示できることが実験で証明された.
2.ファイルから中国語文字を読み込む
インターネットで資料を調べてみると、この方法が推奨されることが多い.FileUtilsの単一オブジェクトを使用して、テキストファイル、リストファイルを読み込むことができます.そのgetValueVectorFromFile、getValueMapFromFile、getStringFromFileなどの方法でテキストの内容を簡単に抽出できます.読み取りたいファイルのエンコード形式をUTF-8(署名なし)に設定するだけで中国語を正しく取得できます.
TIPS:中国語文字列から単一の中国語文字を取得するにはどうすればいいですか?
普通の文字列を巡るように、中国語の文字列を巡る必要がある場合もあります.この場合、普通の遍歴方法は使えません.これは、1つの中国語が3バイトを占めているためです.読み取るときは4バイトを用意して保存し、最後のバイトは'0'で、1つの中国語文字を正しく読むことができます.コードは次のとおりです.
//buf 
char buf[4] = {0};
memcpy(buf, " ", 3);
log ("one chinese char: %s", buf);

logは出力します:あなた