无窗口 RichEdit 控件无法输入表情符号
Posted
技术标签:
【中文标题】无窗口 RichEdit 控件无法输入表情符号【英文标题】:Windowless RichEdit Controls cannot enter emoji 【发布时间】:2019-01-30 05:52:27 【问题描述】:我在使用Windowless RichEdit Controls
(ITextHost
,ITextServices
)的时候发现如果输入了????等表情符号,就会变成□。
如果我使用CreateWindowEx
创建RICHEDIT50W
,所有表情符号都是正确的。但是如果创建RICHEDIT20W
,输入的emoji会变成□。
Windowless RichEdit 是否创建 RICHEDIT20W
?如何使用 Windowless RichEdit 创建RICHEDIT50W
?
【问题讨论】:
表情符号在 Unicode 中具有高代码点,并且在大多数其他编码中可能缺少。在不知道细节的情况下,我怀疑RICHEDIT20W
没有使用任何类型的 Unicode 编码,或者使用的字体没有用于代码点的字形。我的阅读提示:Minimum about Encodings
我在 Google 上搜索了 richedit20w unicode 并发现(除其他外)以下可能感兴趣的内容:SO: Unicode RTF text in RichEdit。
你能在记事本中输入这个表情符号吗?某些 Windows 版本可能没有回退字体。
我进入记事本,表情正确。我使用 spy++,我的访客记事本使用 RICHEDIT50W。
如果我输入emoji会不正确,但是如果我使用EM_SETTEXTEX,emoji可以正确显示。(RICHEDIT20W)
【参考方案1】:
有同样的问题,通过将字体设置为“segeo UI Emoji”来解决
【讨论】:
以上是关于无窗口 RichEdit 控件无法输入表情符号的主要内容,如果未能解决你的问题,请参考以下文章