我需要在 C++ 中定义一个字符集。我已经查看了文档here ,但我正在寻找的是更广泛的范围。例如我有像 this 这样的字母.
为了输入这些字符,我会制作一个虚拟键盘。我假设我已经为每个角色提供了代码。我有这个字符集的字体。问题是,当我从虚拟键盘按下一个键时,它会将键写为例如“q”。在文本字段中,它看起来像是我展示的照片中的字母之一,但在背景中,实际字母是“q”。当我将该字母复制到其他地方时,它会写“q”字母。 Example Image
虽然我无意将那些字母复制到其他地方,但我想给他们一个代码,当我写的时候,它会与'q'不同。
如果我不使用至少两种古代语言,那么用“q”表示该字母不会有问题。 (古希腊、古土耳其)
它将类似于 ASCII 编码,但与程序外部隔离。
我希望我能很好地描述我的问题。
最佳答案
好吧,让我们试一下答案。
首先,不要为窄字符而烦恼。这只是一个痛苦的工作。使用 wchar_t
。其次,在相关系统上,wchar_t
映射到某种形式的Unicode,而Unicode有一个Private Use Area (PUA)。为每个角色分配 PUA 值。这会处理文本的二进制表示。
其次,您需要一个输入法。这是特定于操作系统的,您还没有指定哪个操作系统。而且我们不知道你有什么脚本,所以我们不知道字符键是一对一映射还是更复杂。
最后,您需要一种显示这些脚本的方法。这可以通过两种方式解决。要么你向操作系统提供一种字体,让操作系统用它渲染你的文本,要么你自己接管渲染。两者都不容易,而且都在一定程度上特定于操作系统(我们仍然不知道)。
关于c++ - 如何在 C++ 中制作我自己的字符编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28815299/