是否可以在 Keil uVision 5 中使用十六进制值超过 0xFF 的 unicode?
Is it possible to use unicodes with hex values over 0xFF with Keil uVision 5?
我正在尝试打印 ∆
到控制台。我试过 printf("\u0394");
但出现以下错误:
../Src/main.c(322): warning: #3488-D: Unicode character with hex
value 394 not representable in the system default code page.
我是否缺少 #include
或 #pragma
要求将 Unicode 与 uVision v5 一起使用?
系统默认代码页是什么?
Keil 的编译器用于嵌入式系统,因此 "console" 的概念有点受限。你需要弄清楚你的控制台是如何工作的。有些显示模块只是在 ROM 中有一个硬编码的 ASCII 字符集;无论您做什么,他们都不会显示 ∆ 。
您的代码页可以是任何内容,因为您没有描述操作环境。
代码页做的一件事是将字节 0-255 映射到特定的 Unicode 代码点。由于最多有 1,114,112 个 Unicode 代码点,因此无论您的代码页是什么,您都只能打印映射到的 256 个字符。对于字节 0-255,Unicode 字符不必是 U+0000 到 U+00FF(除非代码页是 ISO-8859-1 aka latin1,实际上 是 映射)。例如,参见 code page 1252.
我正在尝试打印 ∆
到控制台。我试过 printf("\u0394");
但出现以下错误:
../Src/main.c(322): warning: #3488-D: Unicode character with hex value 394 not representable in the system default code page.
我是否缺少 #include
或 #pragma
要求将 Unicode 与 uVision v5 一起使用?
系统默认代码页是什么?
Keil 的编译器用于嵌入式系统,因此 "console" 的概念有点受限。你需要弄清楚你的控制台是如何工作的。有些显示模块只是在 ROM 中有一个硬编码的 ASCII 字符集;无论您做什么,他们都不会显示 ∆ 。
您的代码页可以是任何内容,因为您没有描述操作环境。
代码页做的一件事是将字节 0-255 映射到特定的 Unicode 代码点。由于最多有 1,114,112 个 Unicode 代码点,因此无论您的代码页是什么,您都只能打印映射到的 256 个字符。对于字节 0-255,Unicode 字符不必是 U+0000 到 U+00FF(除非代码页是 ISO-8859-1 aka latin1,实际上 是 映射)。例如,参见 code page 1252.