unsigned long len = 0;
const char* file = (char*)CCFileUtils::sharedFileUtils()->getFileData(Config::getResFullPath("json/image.json").c_str(), "r", &len);
printf("%d %d\n", len, strlen(file));
std::cout << file;
```
读取了一个json文件 文件编码是utf-8
读取后打印出来比实际内容多了一些乱码
getFileData返回的长度也比读出来的char少
请问这是怎么回事
求助。。。。。。。。。。。。。。
你终端也是utf8吗?
win32项目调试 应该也是吧…具体不清楚 搜索了都别人都是用的utf8的编码
我的win7 企业中文版默认是GBK。
所以可能是终端的原因。
解决了 不是编码问题
独处来后是二进制的buff 所以前后多了写标识符之类的操作 通过指针把结尾修改为 \0 vs就能认为字符…
unsigned long ilength;
char* pBuffer = (char*)CCFileUtils::sharedFileUtils()->getFileData(Config::getResFullPath("json/enemyPlane.json"), "rb", &ilength);
char* pstr = pBuffer;
string str(pBuffer);
pstr += ilength;
*pstr = '\0';
CCLog("%s\n", pBuffer);
std::cout << ilength << "返回长度\n";
std::cout << strlen(pBuffer) << "读出的字符串的长度\n";
```

高手在民间啊。顶……
