我使用下一个函数:
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 上我遇到非英文字符的问题。
设备截图:
请帮我定位问题。
附注NDK,API 级别 10
编辑:
Dan Albert:你说得对!谢谢!:)
最佳答案
看起来您使用的是扩展 ASCII 而不是 UTF-8。 IIRC 支持各种 printf 函数的代码需要 UTF-8。
关于android - Android Lollipop 上的 va_start/va_end + vsnprintf 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28736114/