C++的欧元符号

Euro Symbol for C++

本文关键字:符号 C++      更新时间:2023-10-16

我正在Visual Studio 2013中用C++创建一个小型货币转换程序。

对于井号,我使用 Windows-1252 代码为 £ 符号创建了一个字符变量。

const char poundSign(156);

我需要找到一种方法来实现欧元符号,欧元符号。当我运行程序时。

您不应该使用任何已弃用的扩展 ASCII 编码,因为它们现在早已过时。 正如user1937198所说,156是古老的Windows-1252*编码中£的字符代码。 这些编码中非 ASCII 字符的外观取决于用户选择的代码页,这使得在这种方案下无法混合来自不同代码页的字符。此外,如果用户选择了错误的代码页,他们将非常困惑。

考虑改用 Unicode。 由于您使用的是 Windows,因此您可能应该使用 UTF-16,在这种情况下,正确的方法是声明:

// make sure the source code is saved as UTF-16!
const wchar_t poundSign[] = L"£";
const wchar_t euroSign[]  = L"€";

在 UTF-16 中,由于代理项机制,不能保证单个字符仅包含 1 个字符,因此最好将"字符"* 存储为字符串。

请记住,这意味着程序的其余部分也应该切换到Unicode:使用Windows API的"W"版本(WCHAR版本)。

[*] 在技术术语中,每个"Unicode 字符"都称为一个码位。

您必须区分翻译环境和执行环境。例如,这在很大程度上取决于程序的运行位置,将什么字形分配给您要生成的字符(参见"代码页")。

您可能需要检查您的终端或任何 unicode 感知的东西,然后使用适当的代码点。

此外,您不应以您的方式创建字符常量。请改用字符文本。