我使用下一个功能:
void CharTest(const char * format,...)
{
char buffer[1024];
va_list args;
va_start(args, format);
vsnprintf(buffer, sizeof(buffer), format, args);
va_end(args);
fnt->Render(0, 30, 0, buffer);
for(int i=0; i<strlen(buffer); i++)
{
fnt->printf(0, 60 + i*30 , 0, "%d) - %d", i+1, (int)buffer[i]);
fnt->printf(200, 60 + i*30 , 0, "%d) - %c", i+1, buffer[i]);
}
}
测试示例:
CharTest("Russian. Русский");
在Android 4.x上它可以正常工作,但在Android 5上我遇到了非英文字符的问题。
来自设备的屏幕截图:
请帮我解决问题。
P.S。 NDK,API等级10
修改
Dan Albert:你说对了!谢谢!:)
答案 0 :(得分:0)
看起来你正在使用扩展ASCII而不是UTF-8。 IIRC支持各种printf功能的代码期待UTF-8。