控制台无法显示西里尔字符,输出变问号,编码设置无效求助
解决控制台输出西里尔字符显示为“?”的问题
检查控制台字体支持
默认控制台字体(如Consolas)可能不包含西里尔字符集,右键控制台标题栏 → 属性 → 字体,切换到Lucida Console、Courier New等支持西里尔字符的字体。同步设置输入输出编码
仅设置Console.OutputEncoding可能无效,需同时匹配输入编码,根据控制台环境选择合适编码:- 若使用UTF-8:
using System.Text; Console.InputEncoding = Encoding.UTF8; Console.OutputEncoding = Encoding.UTF8; - 若使用Windows-1251(西里尔常用编码):
using System.Text; Console.OutputEncoding = Encoding.GetEncoding(1251); Console.InputEncoding = Encoding.GetEncoding(1251);
- 若使用UTF-8:
调整控制台代码页
打开控制台执行chcp查看当前代码页,切换到对应西里尔支持的代码页:- 切换到Windows-1251:
chcp 1251 - 切换到UTF-8:
chcp 65001
执行后再运行程序测试。
- 切换到Windows-1251:
验证系统区域设置
打开控制面板 → 区域 → 管理 → 更改系统区域设置,可勾选“Beta版:使用Unicode UTF-8提供全球语言支持”,或设置系统区域为俄语等支持西里尔的语言,重启后生效。
内容的提问来源于stack exchange,提问作者Sarertt Pontampon
相关产品推荐
相关产品推荐

