Mac 如何在 c++ 中访问 ascii 中的框绘图字符

How to access box drawing characters in ascii in c++ on Mac

我首先要查找的字符在正常的 ascii 码中通常是 201,但在 mac 中则不同。我该如何解决这个问题?

没有 ASCII 字符 201 这样的东西。ASCII 是一种 7 位单字节字符编码,其中代码点从 0 到 127(含)。也许你指的是原始IBM PC字符集中的“╔”?

那么你可以这样做:

  1. 使用带数字小键盘的 Windows PC。
  2. 在带有输入(例如命令解释器)的控制台 window 中,按住 Alt 并在 201数字小键盘,数字模式(NumLock 打开)。
  3. 启动 Word 或 Windows' 写字板。
  4. 将字符复制并粘贴到 Word 或写字板中。
  5. 键入 Alt+X.

在我的笔记本电脑上,写字板报告 2554,这意味着它是 Unicode 字符 U+2554(十六进制)。

在 C++ 中,您可以将该字符表示为 L'\u2554',类型为 wchar_t

此字符在 OS X 上的任何单字节字符集中均不可用。

与 Windows 环境(需要特殊编码才能使用 Unicode)不同,Unicode 在 OS X 中很容易获得。

使用 Unicode U+2554 或 UTF-8 E2 95 94

你可以只在字符或字符串中使用以下内容╔

可以通过 switching to the Unicode Hex Input keyboard layout 在 Mac 上输入 Unicode 字符。

  1. 打开系统首选项
  2. 选择键盘
  3. 将 Unicode 十六进制输入添加到列表
  4. Select "Show Input menu in menu bar"
  5. 关闭首选项
  6. 单击出现在菜单栏中的旗帜
  7. Select Unicode 十六进制输入

然后您需要代码,您可以在维基百科上找到 box codes 的精彩摘要。

输入密码:

  1. 按住 Option (alt)
  2. 键入代码,不带前面的 U,即对于 U+2560,键入 2560
  3. 发布选项

我用那个方法画了这个例子:╠╩╬╩╣

完成后,您可以使用菜单栏中的标志将键盘输入改回正常输入。

另一方面,如果您更喜欢名字而不是数字,ncurses has supported double- and thick-line drawing characters in Unicode terminals since late 2009。那是在与 OSX 捆绑在一起的(相当旧的)ncurses 5.7 之后,但较新的版本可用于 MacPorts 等

这里有几个截图来说明: