LUA 中的符号

我通过以下方式注册LUA api函数:

lua_register(luaState,“someFunc”,aaa::someFunc);

此函数必须从someFunc的参数中加载字符串。

我正在使用以下方式实现:

int aaa::someFunc(lua_State * state){
    const char *_arg =(const char *)lua_tostring(state,-1);

    // ...

    return 0;
}

这个工作得很好,直到我在someFunc()中放置我语言的一些符号,例如:ą,ł,ź等(它们是用ALT键键入的'a','l','z')。对于所有这些符号,qDebug(“%s”,_arg)\ *仅给我“?”。如何在我的程序中识别这些值?

例如,当我在我的脚本中使用sendFunc(“Aaś”)时,打印的_arg是“Aa?”。

\ *qDebug来自Qt库,它的作用与printf()相同,但输出到调试窗口。

谢谢。

点赞
用户1737
用户1737

QT使用Unicode字符串。我预计从Lua返回的字符串在某个其他的代码页中。你需要将它转换为Unicode才能在qDebug中使用。

要查看字符串中实际包含的内容(以十六进制格式),在调用qDebug之前在代码中设置断点。

2012-07-13 20:54:48