cocos2dx编译时经常会遇到中文乱码的问题,在cocos2dx下可以通过读取plist文件实现
1、plist文件strings.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Start</key>
<string>开始</string>
<key>Stage</key>
<string>第 %d 关</string>
</dict>
</plist>
2、头文件ConstantsString.h
#pragma once
#include "cocos2d.h"
USING_NS_CC;
class ConstantsString {
public:
static ConstantsString* getInstance();
void init();
std::string getString(std::string key);
private:
ValueMap dict;
};
3、实现ConstantsString.cpp
#include "ConstantsString.h"
static ConstantsString* singleInstance = NULL;
ConstantsString* ConstantsString::getInstance()
{
if (singleInstance == NULL){
singleInstance = new ConstantsString();
singleInstance->init();
}
return singleInstance;
}
void ConstantsString::init() {
dict = FileUtils::getInstance()->getValueMapFromFile("strings.plist");
}
std::string ConstantsString::getString(std::string key) {
auto string = dict[key].asString();
return string;
}
4、使用方法
auto string = ConstantsString::getInstance()->getString("Start");