gpt4 book ai didi

c - 为什么我不能使用 Symbola 字体在 Pebble 上显示表情符号?

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:24 25 4
gpt4 key购买 nike

我添加了 Symbola font到我的 watch 应用程序,并尝试在 Pebble 上显示一些表情符号,但遗憾的是,没有骰子。

这是我代码中的相关变量和函数……请保持温和,我有点像 C n00b。

这甚至是为 C 字符串格式化 unicode 的正确方法吗?我添加了冒号作为分隔符。

static char emoji_chars[]=":\xF0\x9F\x98\x81:\xF0\x9F\x98\x93:";

void handle_init(AppContextRef ctx) {
(void)ctx;

window_init(&window, "Window Name");
window_stack_push(&window, true /* Animated */);
text_layer_init(&emoji_layer, GRect(30, 30, 150, 50));
text_layer_set_background_color(&emoji_layer, GColorWhite);
text_layer_set_text_color(&emoji_layer, GColorBlack);
text_layer_set_font(&emoji_layer, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_SYMBOLA_24)));
text_layer_set_text(&emoji_layer, emoji_chars);
layer_add_child(&window.layer, &emoji_layer.layer);
}

void pbl_main(void *params) {
resource_init_current_app(&APP_RESOURCES);
PebbleAppHandlers handlers = {
.init_handler = &handle_init
};
app_event_loop(params, &handlers);
}

最佳答案

documentationtext_layer_set_text

的参数上说

The new text to set onto the TextLayer. This must be a null-terminated and valid UTF-8 string!

(注意感叹号)。 “Unicode”不是有效的 C 字符串编码,但“UTF-8”是。将图标的 Unicode 值作为 UTF-8 字符插入应该可行。

编辑

稍等——您已经将字符 U+1F601 编码为 UTF-8。根据 http://users.teilar.gr/~g1951d/Symbola.pdf,它 是您字体中的有效字符.

关于c - 为什么我不能使用 Symbola 字体在 Pebble 上显示表情符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20830005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com