You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022中NumberFormatInfo.CurrencySymbol显示?而非€的问题求助

控制台货币符号显示为?的问题解决

问题原因

核心原因是控制台窗口默认编码不支持欧元(€)这类Unicode字符,导致字符无法正确渲染,被替换为问号。虽然系统区域设置为西班牙语,但控制台默认代码页(如437、850)不包含欧元符号,所以显示异常;而en-US的$符号在默认代码页中存在,因此能正常显示。

解决方法

1. 代码中强制设置控制台输出编码

在所有输出语句前添加编码配置,让控制台使用UTF-8编码输出:

using System.Globalization;
using System.Text;

// 设置控制台输出编码为UTF-8
Console.OutputEncoding = Encoding.UTF8;

// 原测试代码
Console.WriteLine("Currency Symbol: {0}", NumberFormatInfo.CurrentInfo.CurrencySymbol);

decimal value = 1603.42m;
Console.WriteLine(value.ToString("C3", new CultureInfo("en-US")));
Console.WriteLine(value.ToString("C3", new CultureInfo("fr-FR")));

2. 修改Windows系统全局区域设置

如果不想每次在代码中配置编码,可以修改系统默认设置:

  • 打开「控制面板」→「区域」→「管理」标签页
  • 点击「更改系统区域设置」,勾选「Beta版:使用Unicode UTF-8提供全球语言支持」(Windows 10及以上版本)
  • 重启电脑后,控制台会默认使用UTF-8编码,支持更多Unicode字符

3. 调整Visual Studio调试控制台设置

直接在VS中配置调试时的控制台编码:

  • 点击「工具」→「选项」→「调试」→「控制台」
  • 将「控制台输出编码」设置为「UTF-8」,保存后重新调试

内容的提问来源于stack exchange,提问作者visent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:45:39