这可能是非常明显和简单的东西,以至于我尝试搜索它都失败了,但是:使用 glib 你可以获取 Unicode 的用户输入,类似于我可以粘贴此 亜
的方式这里。我希望能够将其转换为等效的十六进制字符串,例如"亜".charCodeAt(0).toString(16)
返回 4e9c
的方式。是否有这样的标准函数、glib 方法或其他库可以做到这一点?
最佳答案
使用 glib,您可以使用 gunichar
获得单个 Unicode 代码点(g_utf8_get_char
) .如果你需要一个非零的偏移量,只需传递 g_utf8_offset_to_pointer 的返回值即可到 g_utf8_get_char
。对于字符串的转换,您可以使用 g_strdup_printf
.
因此,将所有这些放在一起,您发布的代码的翻译将是:
g_strdup_printf ("%x", g_utf8_get_char (g_utf8_offset_to_pointer ("亜", 0)));
关于C++ 相当于 JS .charCodeAt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24643453/