可以包含特殊字符

时间:2012-08-25 15:23:16

标签: fonts cross-platform special-characters user-input

我需要让用户能够在允许文本输入的地方输入一小组特殊字符。字符的名称是:

  1. FORALL ................................. EXERE EXISTS
  2. NOT EXISTS ........................... CAPITAL PI
  3. CAPITAL SIGMA ......................子集
  4. .............................................................................................................................................................................................................................................
  5. 正确的超越......... IMPLIES
  6. 等价......................... NOT
  7. AND .......................................... OR
  8. 修改

    根据两条评论的要求,我正在澄清我的要求。

    我希望这些字符可用于对象编辑器中的用户输入,也可用作对象读取器中的输出(作为符号)。通常,这些阅读器将显示对象的描述或定义,并且符号将构成该描述/定义的一部分。用户将输入它们作为描述或定义对象的任务的一部分。读者可以使用各种媒体 - 网页,自定义对象阅读器,用于屏幕上或屏幕外阅读的文本文档。

    我想在我的应用程序中提供这些功能,而不管用户使用的是哪种机器。特别是我想提供它们而不管:

    1. 平台
    2. 特定计算机上可用的字体
    3. 区域设置 - 键盘和操作系统设置。
    4. @ Raedwald编辑的答案提供了我要求的两个部分的完整答案。我很可能接受他对我的问题的回答。我将需要进一步调查的部分答案是“2.检测输出设备使用的输出编码。在此检测中包括检查哪些字体存在。”我不知道这项任务涉及什么。

      结束编辑

1 个答案:

答案 0 :(得分:3)

“独立于字体”,“独立于语言环境”。我想这意味着你只想限制自己只使用ASCII字符集。在这种情况下,我建议使用转义字符,以C / C ++字符串的方式。例如,如果转义字符为“?”,则可以对特殊符号进行编码,如下所示:

  • ?FORALL
  • ?E EXERE EXISTS
  • ?N NOT EXISTS
  • ?P CAPITAL PI
  • ?S CAPITAL SIGMA
  • &LT?;
  • 的子集

等等。除非你想像W V Quine *,你还要定义??意思是“?”。


编辑:正如评论所要求的那样:

这涉及输入方面。如果您确实希望将特殊符号显示为特殊符号,则必须以Unicode格式输出。因此,您必须在执行输出时从此表示转换为Unicode,或者对输入执行转换并以Unicode格式记录字符串。


编辑:正如评论所要求的那样:

  

我不一定要将自己限制在ASCII字符集中。即使相关计算机没有(例如)符号字体

,我也希望输入和显示字符
  1. 将您的字符串存储为Unicode编码。
  2. 检测输出设备使用的输出编码。在此检测中包括检查哪些字体存在。
  3. 如果输出编码可以支持所有必需特殊字符的输出,请将输出代码从Unicode转换为输出设备使用的编码。否则,输出代码使用与输入相同的转义序列来编写特殊字符。

  4. * 哲学家W V Quine famously改变了他的机械打字机,用逻辑符号代替了一些类型,包括问号。当被问及“你不会错过问号吗?”时,他回答说:“好吧,你看,我确定处理了问题。”。