首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++的欧元符号

C++的欧元符号
EN

Stack Overflow用户
提问于 2015-01-22 02:38:34
回答 2查看 1.9K关注 0票数 0

我在Visual Studio2013中用C++创建了一个小的货币转换程序。

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

代码语言:javascript
复制
const char poundSign(156);

我需要找到一种方式,我可以实现欧元的符号,欧元符号。当我运行程序的时候。

EN

回答 2

Stack Overflow用户

发布于 2015-01-22 02:43:38

你不应该使用任何过时的extended ASCII encodings,因为它们现在已经过时很久了。正如user1937198所说,156是古语Windows-1252* encoding£的字符代码。这些编码中非ASCII字符的外观取决于用户选择的codepage,这使得在这种方案下不能混合来自不同代码页的字符。此外,如果用户选择了错误的代码页,他们会非常困惑。

考虑改用Unicode。由于您使用的是Windows、you should probably use UTF-16,在这种情况下,正确的方法是声明:

代码语言:javascript
复制
// make sure the source code is saved as UTF-16!
const wchar_t poundSign[] = L"£";
const wchar_t euroSign[]  = L"€";

在UTF-16中,由于surrogate mechanism的原因,不能保证单个字符只包含1个字符,因此最好将"characters"*存储为字符串。

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

*在技术行话中,每个"Unicode字符“都被称为代码点。

票数 1
EN

Stack Overflow用户

发布于 2015-01-22 02:41:48

您必须区分转换环境和执行环境。例如,这在很大程度上取决于你的程序在哪里运行,什么字形被分配给你想要产生的字符(参见“代码页”)。

您可能希望检查您的终端或任何支持unicode的终端,然后只需使用适当的代码点。

此外,您不应该像以前那样创建字符常量。请改用字符文字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28074422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档