如何在C++或Python中打印孟加拉语?解决乱码与无输出问题
解决控制台/PowerShell正常打印孟加拉语的步骤
一、系统基础设置
- 切换控制台编码为UTF-8
打开PowerShell或命令提示符,执行命令:chcp 65001 - 配置默认UTF-8编码(Windows 10 1903及以上版本)
右键控制台标题栏→属性→选项,勾选"使用UTF-8编码进行全球语言支持",点击确定保存。 - 安装孟加拉语语言包
进入Windows设置→时间和语言→语言→添加语言,搜索"孟加拉语"完成安装。 - 更换支持孟加拉语的控制台字体
右键控制台标题栏→属性→字体,选择如Vrinda、SolaimanLipi等支持孟加拉语的字体(需提前安装对应字体)。
二、Python 解决方案
方法1:重新配置标准输出编码(Python 3.7+)
在代码开头添加编码配置,直接打印孟加拉语文本:
import sys sys.stdout.reconfigure(encoding='utf-8') print("আমি বাংলায় লিখছি")
方法2:使用io模块手动指定编码
兼容低版本Python的写法:
import sys import io sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8') print("আমি বাংলায় লিখছি")
注意事项
确保代码文件以UTF-8编码保存(编辑器中设置编码为UTF-8,如VS Code右下角可切换)。
三、C++ 解决方案
方法1:调用Windows API设置输出编码
通过SetConsoleOutputCP将控制台输出编码设为UTF-8,配合宽字符或UTF-8字符串打印:
#include <windows.h> #include <iostream> using namespace std; int main() { // 设置控制台输出为UTF-8编码 SetConsoleOutputCP(CP_UTF8); // 方式1:使用宽字符输出 wcout << L"আমি বাংলায় লিখছি" << endl; // 方式2:直接输出UTF-8字符串 // cout << "আমি বাংলায় লিখছি" << endl; return 0; }
方法2:配置编译器字符集(Visual Studio)
打开项目属性→常规→字符集,选择"使用Unicode字符集",确保代码文件以UTF-8编码保存。
四、PowerShell 额外优化
若PowerShell仍显示异常,可在启动脚本中添加编码配置:
$OutputEncoding = [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
内容的提问来源于stack exchange,提问作者Amit Roy
相关产品推荐
相关产品推荐

